2016-08-29 63 views
2

假設我有一個表Empemp_id,emp_name。我在表格中插入3個條目 - (1,A) (2,B) (3,C)SELECT語句每次都以相同的順序選擇數據嗎?

我沒有創建任何主鍵也沒有添加任何索引。

現在,當我運行select * statement,將在數據中每次顯示爲(1,A),(2,B),(3,C)或是否有對於輸出要(2,B), (1,A), (3,C)或在其它變體的可能性。

+0

參見:http://stackoverflow.com/q/3574284/330315和http://stackoverflow.com/q/36077399/330315 –

+2

實際上,在這種情況下 - 三行,按此順序插入,沒有CI,沒有NCI,沒有更新/刪除,沒有重建等 - 這些行將按此順序返回。但是,當然,任何模式或數據或引擎更改都可能會破壞它,因此需要ORDER BY。順便說一句,我不明白這個問題怎麼來了,被回答這麼多時間了? – dean

回答

3

數據可以通過密鑰,索引或甚至隨機地顯示在任何的順序。

「強制」和保證數據的唯一方法是每次都以相同的順序顯示,使用ORDER BY子句並強制優化器按照您特別要求的順序選擇數據。

0

您需要添加「ORDER BY」子句以保證訂單。否則,這取決於數據庫引擎,配置和/或模式。

請閱讀以下stackoverflow post,以獲得更詳細的原因。

相關問題