如何在Postgresql中使用LIKE和ANY?

如何在Postgresql中使用LIKE和ANY?,sql,postgresql,postgresql-9.2,Sql,Postgresql,Postgresql 9.2,有没有办法对postgres中的字符串数组列进行部分字符串匹配 我正在尝试以下语法,但它没有按我预期的那样工作: SELECT * FROM example_table WHERE '%partial string' ILIKE ANY(array_column) 有正确的方法吗?您需要分别搜索每个下标——下面是一个示例,可以详细说明以包含更多列 SELECT distinct array_column FROM (SELECT array_column, gene

有没有办法对postgres中的字符串数组列进行部分字符串匹配

我正在尝试以下语法,但它没有按我预期的那样工作:

SELECT * FROM example_table WHERE '%partial string' ILIKE ANY(array_column)

有正确的方法吗?

您需要分别搜索每个下标——下面是一个示例,可以详细说明以包含更多列

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%'
如有必要,您可以修改“partial”,使其包含更精确的开始/结束括号和引号

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'