【发布时间】:2017-06-14 05:12:54
【问题描述】:
在PostgreSQL doc 中说:
查询优化器在生成查询计划时会考虑 LIMIT,因此您很可能会根据您为 LIMIT 和 OFFSET 提供的内容获得不同的计划(产生不同的行顺序)。因此,使用不同的 LIMIT/OFFSET 值来选择查询结果的不同子集将产生不一致的结果,除非您使用 ORDER BY 强制执行可预测的结果排序。这不是错误;这是 SQL 不承诺以任何特定顺序传递查询结果这一事实的固有结果,除非使用 ORDER BY 来约束顺序。
但在 MySQL InnoDB 表中,它们的结果将在 PRIMARY KEY 中传递。
为什么查询给出不一致的结果?查询中发生了什么?
【问题讨论】:
-
MySQL 也不保证结果顺序
标签: mysql postgresql