2011-01-21 77 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

相关问题