Mysql 可以按组合排序吗?
在我的代码模型中,我编写了如下所示的范围Mysql 可以按组合排序吗?,mysql,ruby-on-rails,ruby-on-rails-3,activerecord,Mysql,Ruby On Rails,Ruby On Rails 3,Activerecord,在我的代码模型中,我编写了如下所示的范围 scope :recent, lambda { |n = 10| includes(:user).where('users.deleted_at' => nil).order("users.last_active_at DESC").limit(n) } 它基本上按code.users.last_active_at desc order排序 很好用。 现在,我想给它添加额外的条件 如果user.id=10000,我想使用code.created_
scope :recent, lambda { |n = 10| includes(:user).where('users.deleted_at' => nil).order("users.last_active_at DESC").limit(n) }
它基本上按code.users.last_active_at desc order排序
很好用。
现在,我想给它添加额外的条件
如果user.id=10000,我想使用code.created_at而不是code.user.last_active_at。
因此,排序条件将是代码。已在创建 和
编码.用户.最后一次活动时间
可能吗?如果是这样,我该如何更改代码?在Mysql中,您可以使用
CASE
语句,但不知道ruby,但您可以通过这种方式在纯查询中使用您的逻辑
ORDER BY CASE WHEN user.id=10000
THEN code.created_at
ELSE code.users.last_active_at
END
DESC