1. ホーム
  2. regex

[解決済み] PostgresのWHEREで正規表現を使用する

2023-02-18 22:17:50

質問

現在、以下のようなクエリを持っています。

select regexp_matches(name, 'foo') from table;

これを以下のようにwhereの中に正規表現があるように書き換えるにはどうしたらいいでしょうか(うまくいきません)。

select * from table where regexp_matches(name, 'foo');

現在のエラーメッセージは ERROR: WHERE の引数は text[] 型ではなく boolean 型でなければなりません。 SQL の状態です。42804 文字数: 29

どのように解決するのですか?

代わりに書いてください。

select * from table where name ~ 'foo'

演算子'~'は、マッチするサブグループを抽出するのではなく、正規表現がマッチするかどうかのブール値の結果を生成します。