我有一個postgresql數組a = [key1,key2,...]
與主鍵和表foo
。PostgreSQL:存在所有數組
什麼是最好的方法來檢查是否全部a
的主鍵存在於表foo
?
澄清:我正在查找返回TRUE
的查詢,當且僅當數組a
中的所有鍵都存在於表foo
中時。
謝謝!
我有一個postgresql數組a = [key1,key2,...]
與主鍵和表foo
。PostgreSQL:存在所有數組
什麼是最好的方法來檢查是否全部a
的主鍵存在於表foo
?
澄清:我正在查找返回TRUE
的查詢,當且僅當數組a
中的所有鍵都存在於表foo
中時。
謝謝!
你可以指望從加入表格和嵌套的數組行:
select count(*) = array_length(array[1,2], 1)
from foo
join unnest(array[1,2]) id
using (id);
在問題中含糊不清,我假定你有一種編程語言的數組,並且你想根據表的主鍵列來檢查它。
看看這個使用contains @> operator(在頁面中間左右)的例子。
在評論中詳細說明,如果這不是你正在尋找的,請儘可能具體。
這是不幸的是我不是這個意思。該數組是一個posgresql數組。 – fl0cke
我不完全確定這不適用於PG陣列。雖然示例中需要強制轉換,因爲存儲類型爲「VARCHAR」,請嘗試使用數組類型的「@>'並查看。 –