mysql 半角カナ、全角・半角英数をまとめて検索(collate utf8_unicode_ci)

半角カナ、全角・半角英数が混在しているデータから検索したい

作成日:2021-08-06, 更新日:2022-03-03

基本

「collate utf8_unicode_ci」を使えば良いっぽい

▼「hoge」「hoge」の両方を検索対象にしたい

select *
from xxx
where REPLACE(REPLACE(〇〇〇, '゙', ''), '゚', '') collate utf8_unicode_ci like '%hoge%'

※この例だとアルファベッドにしているから関係ないけど、半角カナも対象に含まれる

phpMyAdminだとバージョンによってクエリに問題ある・・・的なコトが言われるかもしれないけど気にせず実行すればOK(※自己責任で実行)

全角カナ・半角カナの濁点・半濁点の対応

上記の「REPLACE(REPLACE(〇〇〇, '゙', ''), '゚', '')」ってトコで全角カナ・半角カナの濁点・半濁点の対応をしている

▼「カラム: category」に「グループ」という値が登録されているとき「グループ」で検索したいといき

select *
from xxx
where REPLACE(REPLACE(`category`, '゙', ''), '゚', '') collate utf8_unicode_ci like '%グループ%'

注意点: 濁音、半濁音も含まれる

・・・設定の問題なのか、勘違いしているのか・・・

濁音、半濁音もすべて同一として扱われるっぽい→「は」「ば」「ぱ」「ハ」「バ」「パ」はすべて同じ扱いになるとか。
・・・半角カナは違うのか? ひとまず面倒なんで未調査。