从SQLite数据库中获取10个随机记录

时间:2010-08-22 05:50:19

标签: ruby-on-rails ruby sqlite random

我无法找到一个从sqlite数据库中获取10个随机记录的好方法。看到一些与mysql一起使用的例子,但是即使我尝试使用Random()而不是rand(),它们似乎也不能与sqlite一起使用。

我试图获取随机数,然后通过id获取记录,但由于某种原因,我得到了几个结果为零。如果有更好的方法,我很好奇。

另外作为旁注,这是我使用Ruby和Rails的第3天所以还是有点新的。

1 个答案:

答案 0 :(得分: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)