1

我有很多带有featured?属性的记录。

我想查询所有,将它们分组为特色和非特色,如果可能的话,将它们随机分布在它们的组之间(随机并显示特色,然后随机其余部分)。

知道如何在 ActiveRecord 上执行此操作吗?

4

1 回答 1

5

利用rand()

MySQL

SELECT * FROM <TABLE_NAME> ORDER BY featured?, rand()

导轨 3

ModelName.order("featured, rand()")

例如:-

id    featured
1      true
2      false
3      false
4      true
5      false
6      true

我希望所有的特征都先是真然后是假,但是真假组的记录顺序应该是随机的

所以我的代码将是

User.order("featured DESC, rand()")

并且生成的 o/p 是(注意:- 组真/假之间的记录顺序可以更改)

id    featured
4      true
6      true
1      true
5      false
3      false
2      false
于 2012-09-21T05:07:51.017 回答