依照 IN 清單中數值的順序對 PostgreSQL 查詢結果進行排序
在 PostgreSQL 中,WHERE 子句中的 IN 結構可讓您指定一組與欄位相符的值。但是,根據 IN 列表中值的順序對結果行進行排序可能是一個挑戰。
幸運的是,PostgreSQL 8.2 引入了 VALUES() 結構,它使您可以建立一個包含特定值和順序的虛擬表。這使我們能夠根據 IN 列表中值的順序對結果進行排序。
要實現此目的,請使用以下語法:
<code class="language-sql">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</code>
在此範例中,我們使用 VALUES() 結構建立一個名為「x」的虛擬表。此虛擬表中的每一行都表示 IN 清單中的一個值及其對應的順序。然後,我們根據「id」欄位將「comments」表與「x」表連接起來,並按「ordering」欄位對結果進行排序。這確保了檢索到的行按 IN 清單中指定的順序排序:(1,3,2,4)。
以上是如何根據 IN 清單中值的順序對 PostgreSQL 查詢結果進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!