プロが教えるわが家の防犯対策術!

MySQLで検索をすると濁点や半濁点もヒットしてしまいます。
「%カルビ%」で、「カルビスープ」も「カルピス」もヒットしてします。

照合順序は「utf8_unicode_ci」ではダメで「utf8_bin」でもダメでした。

PHPにて「%カルビ%」の検索結果から「カルピス」を除去すればいいのですが、
MySQLにて検索で濁点や半濁点をヒットさせない方法はありますか?

A 回答 (1件)

こちらでは


col like '%カルビ%' collate utf8_bin
の場合は清音、濁点、半濁点を区別するようですが。

よろしければ、collateをどのように指定しているか教えてください。

この回答への補足

phpmyadmin 上でテーブルに対して指定しています。

ALTER TABLE `menu` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

としているようです。

検索時 sqlステーメントではなにもしていません。

~and menu.NAME like "%'.$keywordesc.'%"~

補足日時:2011/01/04 00:03
    • good
    • 0
この回答へのお礼

検索にて

~and menu.NAME like "カルビ" collate utf8_bin~

とすることで解決しました。

検索時に明示しなきゃならないんですね。
照合順序を設定してもダメなんですね。

お礼日時:2011/01/04 11:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!