2011-04-05 123 views
0

在我的數據庫中,我有一些記錄,我感到發生了什麼是一個NULL值排序返回:MySQL的順序是(不需要)隨機順序

| col1 | col2 | 
| row1 | NULL | 
| row2 | NULL | 

SELECT ... ORDER BY col2 

即使所有的值相同(NULL ),我希望MySQL以一致的順序返回結果,但它們顯然是隨機的。我運行這個查詢一百次,每隔一段時間就會以不同的順序返回結果。我找不到任何MySQL文檔。有錯誤嗎?或者這是一個記錄的「功能」?

+0

在哪裏/什麼是 「極限」 規範,如果任何? – 2011-04-05 21:43:07

回答

7

這是預期的行爲。只要「Order By」得到遵守,數據庫引擎就可以按任意順序自由返回行。如果你想要一致,那麼試試:

select ... order by col2, some-unique-id 

where some-unique-id是表中唯一的一列。

+0

好的,這就是我的想法。我可以很容易地添加第二個子句,但我只是想知道使用一個子句的結果是一致的還是隨機的。 – Andrew 2011-04-08 16:28:16

0

改變您的查詢

選擇....爲了通過COL2,COL1

或任何其他列則需要