Sql

単語のリストのいずれかに対するPostgreSQLワイルドカードLIKE



Postgresql Wildcard Like



解決:

PostgreSQLは、完全なPOSIX正規表現もサポートしています。

select * from table where value〜 * 'foo | bar | baz';

NS〜*は、大文字と小文字を区別しない一致用です。〜は大文字と小文字を区別します。



別のオプションは、ANYを使用することです。

select * from table where value like any(array ['%foo%'、 '%bar%'、 '%baz%']); select * from table where value ilike any(array ['%foo%'、 '%bar%'、 '%baz%']);

ブール値を生成する任意の演算子でANYを使用できます。正規表現オプションの方が速いと思いますが、ANYはツールボックスに含めると便利なツールです。




あなたはPostgresを使うことができます交替をサポートするSIMILARTO演算子、つまり

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

実際、PostgreSQLにはそのための演算子があります。

SELECT * FROM table WHERE lower(value)~~ ANY( '{%foo%、%bar%、%baz%}');