我有许多带有featured?
属性的记录。
我想查询所有内容,将它们分组为特色和非特色,如果可能的话,在它们的组之间随机分组(随机显示特色组,然后随机显示)。
知道如何在ActiveRecord上执行此操作吗?
答案 0 :(得分:5)
使用rand()
的MySQL
SELECT * FROM <TABLE_NAME> ORDER BY featured?, rand()
RAILS 3
ModelName.order("featured, rand()")
对于Ex: -
id featured
1 true
2 false
3 false
4 true
5 false
6 true
我希望所有的特征值首先为真,然后为假,但是具有真假组的记录的顺序应该是随机的
所以我的代码将是
User.order("featured DESC, rand()")
并生成o / p是(注意: - 可以更改组true / false之间的记录顺序)
id featured
4 true
6 true
1 true
5 false
3 false
2 false