2010-08-22 146 views
1

我一直无法找到一个从sqlite数据库中获取10条随机记录的非常好的方法。看到一些与mysql协同工作的例子,但是他们似乎并不能很好地使用sqlite,即使我正在尝试使用Random()而不是rand()。从SQLite数据库中获取10条随机记录

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

另外作为一个便笺,这是第3天为我使用Ruby和Rails,所以还是有点新。

回答

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) 
+0

这工作太好了,谢谢。 其实它是一个项目,在主页上我想显示几个随机的东西。幸运的是,这是一个个人项目,所以表演并不重要。 – percent20 2010-08-22 08:15:28

+0

哦,所以这是为了实际的网站,而不仅仅是在控制台中。好的,编辑我的答案,给出一个适用于sqlite3的更好方法。我只是在我的控制台(由sqlite3支持)中测试它,它似乎很好,所以我不知道为什么它会失败。我同意你对RAND()和RANDOM()的评论。 – unsorted 2010-08-22 09:26:21

+0

另请参阅http://trevorturk.com/2007/12/04/random-records-in-rails/...看起来像一个有用的和相关的文章(特别是作为评论的结果) – unsorted 2010-08-22 09:28:37

相关问题