如何根據 IN 子句中值的順序對 PostgreSQL 結果進行排序?
Jan 19, 2025 am 10:51 AM使用 IN 子句控制 PostgreSQL 查詢中的行順序
PostgreSQL 的 IN
子句雖然過濾功能強大,但本質上並不能保證特定的行順序。 如果您需要檢索根據 IN
清單中的順序排序的行,使用 VALUES
構造(在 PostgreSQL 8.2 及更高版本中可用)的解決方法提供了一個解決方案。
此方法建立一個子查詢,將 IN
清單中的 ID 對應到自訂訂單。然後主查詢連接該子查詢以對結果進行排序。 方法如下:
SELECT c.* FROM comments c JOIN ( VALUES (1,1), (3,2), (2,3), (4,4) ) AS x (id, ordering) ON c.id = x.id ORDER BY x.ordering;
登入後複製
此查詢使用 x
建構臨時表 (VALUES
)。 x
中的每一行將 IN
清單中的 ID 與其所需的順序 (ordering
) 配對。 JOIN
操作根據 comments
列將此臨時表連結到 id
表。 最後,ORDER BY x.ordering
根據 VALUES
構造中定義的順序對結果進行排序。
此方法有效地允許您自訂涉及 IN
子句的查詢傳回的行順序,從而提供對資料呈現的精確控制。
以上是如何根據 IN 子句中值的順序對 PostgreSQL 結果進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
