[英]How to order twice in the same query
你如何在同一个查询中订购两次? 例如,我可以通过以下命令搜索前十名标记的课程
categories = Category.all.limit(10).order(tags_count: :desc)
我也可以按字母顺序排列它们
categories = Category.all.order(title: :desc)
查询到前十名标签课程后,如何按标题排序? 我试过了,但没用
categories = Category.all.limit(10).order(tags_count: :desc).order(title: :desc)
您可以尝试通过原始 SQL 表达式进行排序:
categories = Category.all.limit(10).order('tags_count desc, title desc')
你可以这样试试——
Category.order(tags_count: :desc, title: :desc).limit(10)
这将做的是,它将首先根据tags_count
descending
排序,然后将排序后的结果集按title
descending
排序。然后取前10
结果并返回它们。
这是对我有用的查询。 感谢@SebastianPalma 的帮助!
Category.where(id: Category.order(tags_count: :desc).limit(10)).order(title: :desc)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.