簡體   English   中英

如何在同一查詢中訂購兩次

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM