MySQLのwhere句で正規表現を使う

できるんだろうと思いつつ、実際使ったことはありませんでした。今回必要に迫られて(まぁ使わなくてもなんとかなったのですが)調べてみたら期待以上に簡単で、非常に便利だったのでメモ。

SELECT * FROM TBL_HOGE WHERE ITEM_CODE REGEXP ‘[a-zA-Z]{1,}-[0-9]{1,4}’

条件の部分はフツーの正規表現です。細かい点に関してはきちんと調べきっていないのですが、期待した結果は得られました。同じような抽出条件の場合、Like検索と正規表現でのパターンマッチ、どっちが速いんでしょうね。

MySQL5.0、CentOS5.2での動作確認です。