想知道在我的Ruby on Rails(2.3.9)应用程序中从数据库中检索随机记录的最佳方法是什么。
我最接近的是使用以下内容。 SQLITE3在生产中喜欢它,MySQL没有。
#class PostsController < ApplicationController
...
@posts = Post.all(:order => "RANDOM()")
...
end
#view
<% @posts.each do |post| %>
...
<% end %>
答案 0 :(得分:1)
MySQL中的函数为RAND()
。使用它而不是RANDOM()
。
答案 1 :(得分:0)
以下SQL查询在我的MySQL上运行正常:
SELECT *
FROM table
ORDER BY rand()
LIMIT 1
我不确定轨道相当于什么,但你明白了
我猜测Rails相当于上面的SQL将是:
Post.all(:order => "rand()", :limit => 1)
答案 2 :(得分:0)
这可能无法实现,具体取决于问题的范围和数据库的大小。见Axiom of Choice。 ;)