2012-10-14 73 views
0

在MySQL中,如果你做mysql選擇帶限制的默認順序select * from mytable limit m,n;

 
select * from mytable limit m, n; 

將你總是回來假設表中相同的行沒有變化(沒有添加刪除,但一些更新)? 例如,如果從不同的客戶端/線程做

 
select * from mytable limit 10000, 10000 

,你會始終得到相同的結果回來?

+0

它取決於表中的列。如果有'PRIMARY KEY',mysql將默認按該列排序,否則我不知道。 – hjpotter92

回答

1

根據第陳述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子句給出(儘管,在我的經驗中相同的順序一致地返回記錄,它始終是一致的)。

相關問題