SQLで特定の条件に一致するデータを抽出する場合、WHEREや、LIKEを使う方法が真っ先に挙げられる。

しかしLIKE句で使用できるワイルドカード文字は以下の二つしかなく、複雑な条件を指定することができない。

%0文字以上の文字列
_任意の1文字

今回はSQLで正規表現を使い、もっと複雑な条件でのデータ抽出をおこなう方法を紹介する。

SQLでの正規表現の使い方

WHERE文と正規表現を組み合わせた使い方を見てみよう。

WHERE カラム名 ~ '^[0-9]{3}-[0-9]{4}$'

上記は郵便番号形式で入力されたデータを抽出する例だが、対象のカラム名の後にチルダ(~)を入力し、続けてシングルクォーテーションで正規表現を囲む。

このとき、正規表現のデリミタは特に必要ない。

ここでは正規表現については詳しく触れないが、複雑な条件でのデータ抽出をおこなう場合は必ず必要となってくるので、基本的なところは習得しておいた方が便利だろう。