2016-01-26 24 views
2

我有一個postgresql數組a = [key1,key2,...]與主鍵和表fooPostgreSQL:存在所有數組

什麼是最好的方法來檢查是否全部a的主鍵存在於表foo

澄清:我正在查找返回TRUE的查詢,當且僅當數組a中的所有鍵都存在於表foo中時。

謝謝!

回答

1

你可以指望從加入表格和嵌套的數組行:

select count(*) = array_length(array[1,2], 1) 
from foo 
join unnest(array[1,2]) id 
using (id); 
0

在問題中含糊不清,我假定你有一種編程語言的數組,並且你想根據表的主鍵列來檢查它。

看看這個使用contains @> operator(在頁面中間左右)的例子。

在評論中詳細說明,如果這不是你正在尋找的,請儘可能具體。

+0

這是不幸的是我不是這個意思。該數組是一個posgresql數組。 – fl0cke

+0

我不完全確定這不適用於PG陣列。雖然示例中需要強制轉換,因爲存儲類型爲「VARCHAR」,請嘗試使用數組類型的「@>'並查看。 –