здесь структура таблицы
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%'
который не работает.