2013-08-29 47 views
1

我有一些表ignore與col ignored_entry_ids包含整數的數組。例如:選擇Postgres中所有數組中存在的值

id  ignored_entry_ids 
1  {1,4,6} 
2  {6,8,11} 
3  {5,6,7} 

如何選擇數字,與陣列的每一行中是否存在? (在examle 6)

+0

究竟是你想要的結果?如果您查詢數字5,結果應該是什麼? –

+0

結果是所有用戶都忽略的enrty_id數組(來自'ignored_entry_ids'列)。換句話說,在'ignored_entry_ids'列中的所有行中都存在^數字。 –

回答

3

如果您的號碼是唯一的內部數組,你可以做這樣的事情,不認爲它可以在不unnest

with cte as (
    select id, unnest(ignored_entry_ids) as arr 
    from ign 
) 
select arr 
from cte 
group by arr 
having count(*) = (select count(*) from ign) 

sql fiddle demo

進行,如果號碼不獨特,加distinct

with cte as (
    select distinct id, unnest(ignored_entry_ids) as arr 
    from ign 
) 
select arr 
from cte 
group by arr 
having count(*) = (select count(*) from ign) 
+0

這是很好的解決方法,謝謝! –

相關問題