これがテーブル構造です
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%'
動作していません。