複数の一致を探す短い方法はありますか:
SELECT *
from table
WHERE column LIKE "AAA%"
OR column LIKE "BBB%"
OR column LIKE "CCC%"
この質問は PostgreSQL 9.1 に当てはまりますが、一般的な解決策があればさらに良いでしょう。
複数の一致を探す短い方法はありますか:
SELECT *
from table
WHERE column LIKE "AAA%"
OR column LIKE "BBB%"
OR column LIKE "CCC%"
この質問は PostgreSQL 9.1 に当てはまりますが、一般的な解決策があればさらに良いでしょう。
おそらく使用SIMILAR TO
するとうまくいくでしょうか?
SELECT * from table WHERE column SIMILAR TO '(AAA|BBB|CCC)%';
@maniek が今日示したLIKE ANY(ARRAY['AAA%', 'BBB%', 'CCC%'])
このクールなトリックに従って使用します。
配列またはセット比較の使用:
create table t (str text);
insert into t values ('AAA'), ('BBB'), ('DDD999YYY'), ('DDD099YYY');
select str from t
where str like any ('{"AAA%", "BBB%", "CCC%"}');
select str from t
where str like any (values('AAA%'), ('BBB%'), ('CCC%'));
AND
任意の順序に一致する場合、正規表現では簡単ではないを実行することもできます。
select str from t
where str like all ('{"%999%", "DDD%"}');
select str from t
where str like all (values('%999%'), ('DDD%'));