我有一个名为 Post 的模型,有一个名为 vote 的专栏,并且有大量帖子
我想随机选择 n 个拥有 >=x 票的帖子。与帖子数量相比,n 非常小
做这个的最好方式是什么?我尝试了几种似乎效率很低的方法。谢谢
如果您使用 MySQL,您可以对所有满足大于条件的帖子进行随机排序,然后选择前 n 个。
实际的查询看起来像
SELECT * FROM posts WHERE votes >= x ORDER BY rand() LIMIT n
还没有测试过这个,但是这样的东西应该可以在 Rails 中工作:
Post.all(:conditions => ["votes >= ?", x], :order => "rand()", :limit => n)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)