我还没有找到一种从sqlite数据库中获取10条随机记录的好方法。看到了一些使用MySQL的例子,但是它们似乎不能很好地使用sqlite,即使我尝试使用random()而不是rand()。
我试着先得到随机数,然后通过ID获取记录,但出于某种原因,我得到的结果是零。如果有更好的方法,我就是古董。
另外,作为一个旁注,今天是我使用Ruby和Rails的第三天,所以它还是有点新鲜。
怎么样
User.all.sort_by{rand}.slice(0,10)
?
这只是测试用的,对吧?
编辑 :不再独立于数据库,但对于sqlite3:
User.find(:all, :order => "RANDOM()", :limit => 10)
对于MySQL:
User.find(:all, :order => "RAND()", :limit => 10)