代码之家  ›  专栏  ›  技术社区  ›  Buddy Lindsey

从sqlite数据库中随机获取10条记录

  •  1
  • Buddy Lindsey  · 技术社区  · 14 年前

    我还没有找到一种从sqlite数据库中获取10条随机记录的好方法。看到了一些使用MySQL的例子,但是它们似乎不能很好地使用sqlite,即使我尝试使用random()而不是rand()。

    我试着先得到随机数,然后通过ID获取记录,但出于某种原因,我得到的结果是零。如果有更好的方法,我就是古董。

    另外,作为一个旁注,今天是我使用Ruby和Rails的第三天,所以它还是有点新鲜。

    1 回复  |  直到 14 年前
        1
  •  4
  •   unsorted    14 年前

    怎么样

    User.all.sort_by{rand}.slice(0,10)
    

    ?

    这只是测试用的,对吧?

    编辑 :不再独立于数据库,但对于sqlite3:

    User.find(:all, :order => "RANDOM()", :limit => 10)
    

    对于MySQL:

    User.find(:all, :order => "RAND()", :limit => 10)