簡體   English   中英

在保留數組順序的同時對數組中的SELECT ID進行批處理

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

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