1. ホーム
  2. sql

[解決済み】PostgreSQLのワイルドカードLIKEで単語リストのいずれかを指定する場合

2022-04-14 03:44:41

質問

25個の単語からなる簡単なリストがあります。PostgreSQLにvarcharフィールドがあり、そのリストが次のようなものだとします。 ['foo', 'bar', 'baz'] . 私は、これらの単語のいずれかを持つ私のテーブルの任意の行を見つけたい。これは動作しますが、私はよりエレガントな何かをしたいです。

select *
from table
where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')

解決方法は?

Postgresの SIMILAR TO 演算子は、交互変換をサポートします。

select * from table where lower(value) similar to '%(foo|bar|baz)%';