这是表结构
table1
pk int, email character varying(100)[]
data
1, {'mr_a@gmail.com', 'mr_b@yahoo.com', 'mr_c@postgre.com'}
我试图实现的是从记录中找到任何“gmail”
query
select * from table1 where any(email) ilike '%gmail%';
但是any()只能在左侧,并且unnest()可能会降低性能。有人知道吗?
编辑
实际上,当我第一次发帖时,我有点困惑。我尝试通过any(array[])来实现。
这是我的实际结构
pk int,
code1 character varying(100),
code2 character varying(100),
code3 character varying(100), ...
我的第一个方法是
select * from tabl1 where code1 ilike '%code%' or code2 ilike '%code%' or...
那我试试
select * from table1 where any(array[code1, code2, ...]) ilike '%code%'
这是行不通的。