Mysqlで50音検索(あ行で始まるレコードを検索する)

検索できるのに50音検索なんて必要なのか? という疑問を抱きつつも、やってみたら意外に面倒だったのでメモしておく。

あ行

SELECT * FROM table  WHERE name REGEXP '^(あ|い|う|え|お|ア|イ|ウ|エ|オ)+';

英数字

SELECT * FROM table  WHERE name REGEXP '^([a-zA-Z0-9])+';

濁音・半濁音

一部文字列については、濁音や半濁音についても考慮したほうが良い。

SELECT * FROM table  WHERE name REGEXP '^(は|ひ|ふ|へ|ほ|ハ|ヒ|フ|ヘ|ホ|パ|ピ|プ|ペ|ポ|ぱ|ぴ|ぷ|ぺ|ぽ|バ|ビ|ブ|ベ|ボ|ば|び|ぶ|べ|ぼ)+';

ただし、括弧(「や【)で始まる文字列もあり、それらは上記ではヒットしない。