2010-08-22 185 views
1

我一直無法找到一個從sqlite數據庫中獲取10條隨機記錄的非常好的方法。看到一些與mysql協同工作的例子,但是他們似乎並不能很好地使用sqlite,即使我正在嘗試使用Random()而不是rand()。從SQLite數據庫中獲取10條隨機記錄

我試圖獲得隨機數,然後通過id獲取記錄,但由於某種原因,我得到零結果爲零。如果有更好的方法,我很好奇。

另外作爲一個便箋,這是第3天爲我使用Ruby和Rails,所以還是有點新。

回答

4

如何

User.all.sort_by{rand}.slice(0,10) 

這只是爲了測試,對吧?

編輯:不再與數據庫無關的,但是,對於sqlite3的:

User.find(:all, :order => "RANDOM()", :limit => 10) 

,併爲MySQL:

User.find(:all, :order => "RAND()", :limit => 10) 
+0

這工作太好了,謝謝。 其實它是一個項目,在主頁上我想顯示幾個隨機的東西。幸運的是,這是一個個人項目,所以表演並不重要。 – percent20 2010-08-22 08:15:28

+0

哦,所以這是爲了實際的網站,而不僅僅是在控制檯中。好的,編輯我的答案,給出一個適用於sqlite3的更好方法。我只是在我的控制檯(由sqlite3支持)中測試它,它似乎很好,所以我不知道爲什麼它會失敗。我同意你對RAND()和RANDOM()的評論。 – unsorted 2010-08-22 09:26:21

+0

另請參閱http://trevorturk.com/2007/12/04/random-records-in-rails/...看起來像一個有用的和相關的文章(特別是作爲評論的結果) – unsorted 2010-08-22 09:28:37

相關問題