在PostgreSQL JOIN 中使用陣列類型保留排序:綜合解決方案
給定的資料庫架構由兩個表組成:items 和some_chosen_data_in_order。目前的任務是從 items 表中檢索 some_chosen_data_in_order 表中特定行的數據,同時保留數組類型欄位中元素的順序。
無效嘗試:
您最初嘗試使用 JOIN 和子查詢未能維持數組類型欄位中的元素順序。這些方法不能始終保留 id_items 陣列中元素出現的順序。
有效的解決方案:
要解決此問題,請採用涉及以下的替代方法:取消巢狀()函數:
SELECT t.* FROM unnest(ARRAY[1,2,3,2,3,5]) item_id LEFT JOIN items t on t.id=item_id
解釋:
此查詢利用unnest() 函數從item_id 陣列中提取單一元素,從而有效地為每個元素建立臨時行。隨後,我們對 items 表執行 LEFT JOIN 以檢索所需的數據,同時保持指定的順序。
範例:
考慮 some_chosen_data_in_order 表包含一行id_items 為 [1,2,3,2,3,5]。執行上述查詢將傳回與下列項目相關的資料(依指定順序):
以上是在 PostgreSQL 中連接表格時如何保留陣列順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!