MySQL の正規表現

この記事は公開されてから8年経過しています。現在とは内容が異なる場合がありますのでご注意ください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。

MySQL で SELECT するときに正規表現を使いたいことがよくあります。
「特定のパターンに一致しているものだけ」とかその反対もありますが。

例えば郵便番号のカラムが [0-9]{3}-[0-9]{4} という郵便番号フォーマットになっていないものだけ抽出してフォーマットし直したい時とかですね。

MySQL の WHERE句 で正規表現を使うときはこんなふうになります。

これで addresses テーブルから zip_code カラムが ‘^[0-9]{3}-[0-9]{4}$’ のパターンに一致しないレコードを抽出することができますね。

LINE や REGEXP の時に否定したいときはそれぞれ NOT を追加すればokです。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.3.2 正規表現