如果我这样做,是否在文档中的某个地方说明了这一点:
SELECT *
FROM (
SELECT *
FROM foo
ORDER BY bar ASC
LIMIT 1000
)
LIMIT 10
OFFSET 10
那么内部查询排序将进行到外部查询?
还是我需要ORDER BY
在外部查询中重复内部查询?这是假设我们没有任何连接。
如果我这样做,是否在文档中的某个地方说明了这一点:
SELECT *
FROM (
SELECT *
FROM foo
ORDER BY bar ASC
LIMIT 1000
)
LIMIT 10
OFFSET 10
那么内部查询排序将进行到外部查询?
还是我需要ORDER BY
在外部查询中重复内部查询?这是假设我们没有任何连接。
ORDER BY
除非您有外部查询,否则您不能依赖任何排序。排序将取决于选择的执行计划。在当前查询的情况下,我想不出一个不会保留顺序的合理执行计划,但谁知道查询优化器将来会带来什么?
我会写第二个
ORDER BY
。对 1000 行进行排序很便宜,你可以确定。