2011-01-21 75 views
0

想知道在Ruby on Rails(2.3.9)應用程序中從數據庫檢索隨機記錄的最佳方式是什麼?從數據庫中檢索隨機記錄

我得到的最接近的是使用下面。 SQLITE3在生產中喜歡它MySQL沒有。

#class PostsController < ApplicationController 
... 
@posts = Post.all(:order => "RANDOM()") 
... 
end 

#view 
<% @posts.each do |post| %> 
... 
<% end %> 

回答

1

MySQL中的函數是RAND()。用它代替RANDOM()

0

下面的SQL查詢工作正常,我對MySQL的:

SELECT * 
FROM table 
ORDER BY rand() 
LIMIT 1 

我不知道什麼鐵軌相當於這一點,但你的想法

我要一猜測上面SQL的Rails等價物是:

Post.all(:order => "rand()", :limit => 1) 
0

根據問題的範圍和數據庫的大小,這可能是不可能的SE。見Axiom of Choice。 ;)

+0

答案中有很多未定義的內容。 – 2011-01-21 21:39:18

相關問題