在mysql中,如果你这样做
select * from mytable limit m, n;假设表没有变化(没有添加删除,但有些更新),你会一直得到相同的行吗? 例如,如果你这样做
select * from mytable limit 10000, 10000
来自不同的客户/线程,你会不断得到相同的结果?
答案 0 :(得分:1)
如第20.2节<直接选择声明:多行>,“一般规则”的小节所述 SQL-92 specification:
4) If an <order by clause> is not specified, then the ordering of the rows of Q is implementation-dependent.
我在MySQL手册中可以找到的关于这一点的最佳实现特定文档位于Sorting Rows下:
您可能已在前面的示例中注意到结果行没有按特定顺序显示。当行以某种有意义的方式排序时,通常更容易检查查询输出。要对结果进行排序,请使用
ORDER BY
子句。
可以说,如果没有相反的明确文档,除非给出适当明确的ORDER BY
条款,否则不能依赖MySQL以相同的顺序一致地返回记录(尽管根据我的经验,它始终是一致)。