2011-03-04 45 views

回答

10

可以肯定的是,默認順序是DB決定返回它們。

查看此處瞭解更多信息。

ActiveRecord Find All not sorting by ID?

如果你想他們在一個特定的順序,你應該做的Model.order()

+0

你說得對。 MySQL按ID排序,PostgreSQL最後返回最後更新的條目(我認爲)。感謝您的鏈接,這正是我一直在尋找的。 :) – iGEL 2011-08-25 10:02:14

6

沒有訂單。您應該在瞭解ActiveRecord的同時觀察日誌,以查看正在生成的SQL。如果沒有ORDER BY子句,則沒有訂單。您可能會發現將記錄重新插入到數據庫的順序,但這只是巧合而已,並且是由於在數據庫服務器中的實現。 SQL結果顯式無序,除非ORDER BY存在。

至於#第一,這也是隨機的,沒有訂單條款(至少,它在軌道3)。

你可以很容易地指定的順序:Rails中

MyModel.order(:some_attr) # all records sorted by some_attr 
MyModel.order(:some_attr).first # First record in sorted order 
+0

良好的軌道3.2 – 2017-05-10 18:19:03

3

默認順序沒有定義。實際上它取決於數據庫。

-2

它以創建的訂單(而不是在軌道上的created_at)中訂購結果。

相關問題