随机查询排序记录

时间:2020-02-05 20:24:20

标签: mysql sql ruby-on-rails ruby-on-rails-5

我在视图中显示了用户表的所有用户,该表中有一个名为“订单”的字段,在其中我为前200条记录分配了一个数字,以便这些用户在“订单”字段将首先显示那些在该字段中为空的人。

前200个用户是否可以先随机显示?

这是我的查询

@users = User.includes(:plan).with_avatar



@users = @users.order( '`order` DESC, sponsor DESC, id DESC' ) 
@users = @users.paginate(page: page).per_page(18)

2 个答案:

答案 0 :(得分:2)

前200个用户是否可以先随机显示?

ORDER BY CASE WHEN order <= 200
              THEN RAND()
              ELSE order
              END

答案 1 :(得分:1)

我建议:

order by (case when order is not null) desc,
         rand()