mysql で検索するときに、
select * from table where column like '%word%';
なんてしたいことありますよね。
さらに、
select * from table where (column like '%word%' or column2 like '%word%')
AND (column like '%word%' or column2 like '%word%');
なんてことになったり・・
それに半角カナ、全角カナとかなると、
あーーーーーもう!!めんどくせーーーー!!!!
ってなると思います。(僕はなりました)
そこでいろいろググりまくっていると、
ってのを見つけて、そこのキーワードを参考にいろいろ検索してると、
collate utf8_unicode_ci
こんなのにたどり着きました。
何かというと、UTF-8環境のMySQLで、ひらがな、カタカナ(半角・全角)気にせずに、検索できます。
SQLは、まずUTF-8環境のDBと仮定した上で、
alter table table_name collate utf8_unicode_ci;
これで、 collate utf8_unicode_ci が使えるようになりました。
あとは、 where 検索したいカラム collate utf8_unicode_ci(これはこのまま) like '%検索したいワード%' を叩く。
select * from table where
(column1 collate utf8_unicode_ci LIKE '%わーど%' OR column2 collate utf8_unicode_ci LIKE '%わーど%');
このクエリを叩くと、
「わーど」 ひらがな
「ワード」 カタカナ(全角)
「ワード」 カタカナ(半角)
がHITしてくれます。
いや~便利ですねぇ。
コメントする