[英]How to unnest multiple array columns while preserving the order of the array
[英]Batch SELECT ids in an array while preserving the array order
我有一個可能重復的ID數組: [1,4,2,1,4,6,7]
手動我必須做
SELECT * FROM products WHERE catid='1'
SELECT * FROM products WHERE catid='4'
SELECT * FROM products WHERE catid='2'
SELECT * FROM products WHERE catid='1'
.....
一個接一個地結合在一起
有一種方法可以在單個查詢中同時保留其順序嗎? 所以我會
| id | props |
|----|--------|
| 1 | 1_props|
| 4 | 4_props|
| 2 | 2_props|
| 1 | 1_props|
您可以取消嵌套該數組,然后加入該數組。 選項with ordinality
將包括陣列作為列中的元素的索引。 可以用來對結果進行排序:
select p.*
from products p
join unnest(array[1,4,2,1,4,6,7]) with ordinality as t(id, idx) on t.id = p.catid
order by t.idx;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.