MySQL で全文検索 ひらがな、カタカナ(半角・全角)気にせず検索しよう

| コメント(0) | トラックバック(0)
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してくれます。


いや~便利ですねぇ。

トラックバック(0)

トラックバックURL: http://wevew.net/mt-apps/mt-tb.cgi/87

コメントする

このブログ記事について

このページは、mcfishが2010年6月 1日 12:43に書いたブログ記事です。

ひとつ前のブログ記事は「DELL Power Edge 1550 のRAIDが壊れてピーピー。」です。

次のブログ記事は「mysqld_multi で複数のmysqldを扱う!!!」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ