MySQLコマンドやSQL文に関する各種メモ書き:タグ「正規表現」での検索

正規表現を使って検索する

正規表現を使って行を検索するには

WHERE REGEXP '正規表現'

とする。

SELECT
  id ,
  artist_name
FROM
  artist_dt
WHERE
  artist_name REGEXP '^[a-z]+$';
また、エスケープシーケンス(\)を使う場合、シーケンスが1つの場合はMySQLに対するエスケープとみなされますので、正規表現としてのエスケープとする場合は2つ並べることになります。
バックスラッシュにマッチ
SELECT '\\' REGEXP '\\\\';

ドット(正規表現ではなく文字としてのドット)にマッチ
SELECT '.' REGEXP '\\.';

シングルクォートにマッチ
SELECT '\'' REGEXP '\'';

■ 注意

MySQLでは日本語を含む正規表現は使用できません。

無理やり使う場合は下記のように記述します

× artist_name REGEXP '^[ア-オ]+'
◯ artist_name REGEXP '^(ア|イ|ウ|エ|オ)+'


日本語を含む正規表現を使用したい場合は下記の mregexp を使用します。

http://www.irori.org/tool/mregexp.html


No.294
04/19 10:29

edit

正規表現