[英]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.