MySQL の正規表現

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 正規表現