mysql选择默认顺序,带限制select * from mytable limit m,n;

时间:2012-10-14 01:18:47

标签: mysql

在mysql中,如果你这样做

select * from mytable limit m, n;
假设表没有变化(没有添加删除,但有些更新),你会一直得到相同的行吗? 例如,如果你这样做

select * from mytable limit 10000, 10000

来自不同的客户/线程,你会不断得到相同的结果?

1 个答案:

答案 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以相同的顺序一致地返回记录(尽管根据我的经验,它始终是一致)。

相关问题