0
在MySQL中,如果你做mysql選擇帶限制的默認順序select * from mytable limit m,n;
select * from mytable limit m, n;
將你總是回來假設表中相同的行沒有變化(沒有添加刪除,但一些更新)? 例如,如果從不同的客戶端/線程做
select * from mytable limit 10000, 10000
,你會始終得到相同的結果回來?
在MySQL中,如果你做mysql選擇帶限制的默認順序select * from mytable limit m,n;
select * from mytable limit m, n;
將你總是回來假設表中相同的行沒有變化(沒有添加刪除,但一些更新)? 例如,如果從不同的客戶端/線程做
select * from mytable limit 10000, 10000
,你會始終得到相同的結果回來?
根據第陳述20.2 <直接select語句:多行>的 款「通則」的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
子句。
我只想說,沒有明確的文件,相反,一個不能依靠MySQL的,除非適當明確ORDER BY
子句給出(儘管,在我的經驗中相同的順序一致地返回記錄,它始終是一致的)。
它取決於表中的列。如果有'PRIMARY KEY',mysql將默認按該列排序,否則我不知道。 – hjpotter92