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

最初に値が true で、次に false のすべての機能が必要ですが、true と false のグループ内のレコードの順序はランダムにする必要があります

だから私のコードは

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

および生成された o/p は (注:- グループ true/false 間のレコードの順序は変更できます)

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