2016-02-12 54 views
2

所以我有一個Postgres數據庫,其中一列是一個字符串選擇像

如果我做了查詢

SELECT count(*) FROM table WHERE column @> ARRAY['string']::varchar[]; 

我得到一組特定的陣列數據備份,但如果我想查詢與字符串通配符數組我似乎無法找出答案,像

SELECT count(*) FROM table WHERE column LIKE ARRAY['%string%']::varchar[]; 

任何幫助表示讚賞!

回答

1

使用unnest()

WITH t(arr) AS (VALUES 
    (ARRAY['foo','bar']), 
    (ARRAY['foo1','bar1']) 
) 
SELECT count(*) FROM t,unnest(t.arr) AS str 
WHERE str ILIKE '%foo%'; 

結果:

count 
------- 
    2 
(1 row) 
0

可以使用ANY() construct,連同~~(在LIKE operator):

SELECT count(*) FROM table 
WHERE column ~~ ANY(ARRAY['%string%']::varchar[]);