SQLで特定の条件に一致するデータを抽出する場合、WHEREや、LIKEを使う方法が真っ先に挙げられる。
しかしLIKE句で使用できるワイルドカード文字は以下の二つしかなく、複雑な条件を指定することができない。
% | 0文字以上の文字列 |
_ | 任意の1文字 |
今回はSQLで正規表現を使い、もっと複雑な条件でのデータ抽出をおこなう方法を紹介する。
SQLでの正規表現の使い方
WHERE文と正規表現を組み合わせた使い方を見てみよう。
WHERE カラム名 ~ '^[0-9]{3}-[0-9]{4}$'
上記は郵便番号形式で入力されたデータを抽出する例だが、対象のカラム名の後にチルダ(~)を入力し、続けてシングルクォーテーションで正規表現を囲む。
このとき、正規表現のデリミタは特に必要ない。
ここでは正規表現については詳しく触れないが、複雑な条件でのデータ抽出をおこなう場合は必ず必要となってくるので、基本的なところは習得しておいた方が便利だろう。