从DB中检索随机记录

时间:2011-01-21 20:06:28

标签: ruby-on-rails ruby random

想知道在我的Ruby on Rails(2.3.9)应用程序中从数据库中检索随机记录的最佳方法是什么。

我最接近的是使用以下内容。 SQLITE3在生产中喜欢它,MySQL没有。

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

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

3 个答案:

答案 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。 ;)