0
A
回答
2
如果表中没有包含太多的条目下面将返回4个随机选择的用户:
User.find(:all, :order => 'RANDOM()', :limit => 4)
然而,这并不比例的,因为它会随机整个表。对于有很多列的表,这可能是非常密集的IO。
另一种方法是只对id
进行随机化,然后只选择那些行。沿着线的东西:
# Return an array of ids randomly drawn from User
ids = ActiveRecord::Base.connection.select_values(
User.send(:construct_finder_sql, { :select => 'id',
:order => 'RANDOM()',
:limit => 4
}))
# Return the users drawn from above
users = User.find(:all, :conditions => "id IN (#{ids.join(',')})")
如果用这个去了,我想将其封装为User
一个类的方法。
相关问题
- 1. 随机用户名
- 2. 随机位置
- 3. 随机AccessViolationExceptions使用位图
- 4. 可视化随机四维数据集
- 5. Java的随机()四舍五入
- 6. 显示四个随机图像
- 7. 随机位置不是随机的[vb.net]
- 8. CAReplicatorLayer随机位置
- 9. 随机定位框
- 10. 随机TextView位置
- 11. 选择随机用户sql
- 12. 获取随机用户名
- 13. 获取随机用户
- 14. 机械化随机用户代理
- 15. RoR电子邮件与第四版书
- 16. 随机定位图像
- 17. EXC_BAD_ACCESS随机位置iOS 9
- 18. 随机整数移位
- 19. 4位随机数C++
- 20. 随机定位的元素
- 21. 随机精灵位置
- 22. 随机位置的阵列
- 23. BaseExpandableListAdapter - getChildView随机位置
- 24. jQuery:随机定位的div
- 25. 64位随机种子
- 26. 随机位在范围
- 27. 在随机位置绘画
- 28. 随机位置上的Imageview
- 29. 复位 '随机' 数学
- 30. PHP 64位随机数
这就是我得到的:SQLite3 :: SQLException:没有这样的函数:rand: – Brian 2010-09-08 01:57:27
对于SQLite,函数是'RANDOM()'。 – rjk 2010-09-08 02:10:40