有没有办法在postgres中对字符串数组列进行部分字符串匹配?
我正在尝试以下语法,但它无法正常工作:
SELECT * FROM example_table WHERE '%partial string' ILIKE ANY(array_column)
有没有正确的方法呢?
答案 0 :(得分:1)
drop table if exists temp_a;
create temp table temp_a as
(
select array['alpha','beta'] as strings
union all
select array['gamma','theta']
);
select *
from (select unnest(strings) as string from temp_a) as sq
where string ilike '%eta'
答案 1 :(得分:0)
你需要单独搜索每个下标 - 这里有一个例子,可以用来包含更多列
SELECT distinct array_column FROM
(SELECT array_column,
generate_subscripts(array_column, 1) AS s
FROM example_table) AS foo
WHERE array_column[s] like '%partial string';
替代黑客:
select * from example_table where array_column::text like '%partial%'
如果有必要,你可以破解"部分"包括开/关括号和引号只是更精确一些。