檢查數組中是否存在一個值非常簡單。例如,以下內容將返回true。檢查Postgres中的數組中是否存在多個值
SELECT 'hello' = ANY(ARRAY['hello', 'bees'])
但是,如果我想檢查數組中是否存在多個值呢?例如,如果數組中存在'hello'或'bye',我想返回true。我想要做類似
SELECT ['hello', 'bye'] = ANY(ARRAY['hello', 'bees'])
但這似乎並不奏效。
編輯:
我也期待找出我怎麼能檢查是否有多個值的數組,其中的多重價值有共同的前綴存在。
例如,如果我想在數組中包含任何帶有'hello'前綴的元素時返回true。所以我基本上想要像
SELECT ARRAY['hello%'] && ARRAY['helloOTHERSTUFF']
爲true。
'ARRAY [「你好」,「再見」] && ARRAY [「你好」,「蜜蜂']' – Abelisto
謝謝!如果多個值跨越多個具有相同前綴的事物會怎樣?例如,我想匹配數組中以'hello'開頭的任何值。例如,我希望像'ARRAY ['hello'] && ARRAY ['helloOTHERSTUFF']'是真的。我也會編輯原文。 – Vincent
對於任意的東西,您需要使用unnest()將兩個數組轉換爲記錄集,然後根據需要加入它們。你可以使用array()把它變成一個數組。 –