为了账号安全,请及时绑定邮箱和手机立即绑定

ActiveRecord中的随机记录

ActiveRecord中的随机记录

跃然一笑 2019-10-06 12:53:24
我需要通过ActiveRecord从表中获取随机记录。我遵循了2006年Jamis Buck的例子。但是,我也通过Google搜索遇到了另一种方式(由于新用户的限制,无法通过链接添加属性): rand_id = rand(Model.count) rand_record = Model.first(:conditions => ["id >= ?", rand_id])我很好奇这里的其他人是如何做到的,或者是否有人知道哪种方法会更有效。
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

没有至少两个查询,我还没有找到一种理想的方法。


以下使用随机生成的数字(直到当前记录数)作为偏移量。


offset = rand(Model.count)


# Rails 4

rand_record = Model.offset(offset).first


# Rails 3

rand_record = Model.first(:offset => offset)

老实说,我一直在使用ORDER BY RAND()或RANDOM()(取决于数据库)。如果您没有性能问题,那么这不是性能问题。


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 560 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信