2013-06-12 47 views

回答

11

默認「排序」順序。關係表中的行未分類

唯一的(真正:是唯一)的方式得到一個特定的順序是使用ORDER BY

無論爲了你看到沒有ORDER BY運行SELECT純一致,可與下次執行更改。

順序可以因爲各種原因發生變化:

  • 其他會話正在運行相同的語句
  • 表進行了更新
  • 執行計劃改變
  • ...

這是一個小小的SQLFiddle,向您展示「訂單」如何變化:http://sqlfiddle.com/#!4/19d14/2

請注意,初始「訂單」與插入訂單不一樣!

+0

它可以改變?我從來沒有看到前幾個記錄的變化,他們總是一樣的..? –

+7

@FlorianMüller - 每天,在我開車上班的路上,我看到一輛藍色的汽車,接着是一輛紅色的汽車,接着是一輛綠色的汽車。這是否出於某種原因,使我有資格期望這一定會發生?或者這只是一個巧合,而不是我應該依賴的永遠是真實的? –

+0

@FlorianMüller:參見我的SQLFiddle示例。 –

1

通常,除非指定,否則存在排序順序。

這可以從存儲,索引,索引存儲,索引選擇,執行計劃,數據庫引擎實現,像我感覺的威利尼利不同。

所以,你可以看到,你要麼指定排序順序,要麼你不指望它。

+0

但是,每次執行這條語句時,選定的記錄是如何具有相同的順序呢? –