- ベストアンサー
検索で濁点や半濁点をヒットさせない
MySQLで検索をすると濁点や半濁点もヒットしてしまいます。 「%カルビ%」で、「カルビスープ」も「カルピス」もヒットしてします。 照合順序は「utf8_unicode_ci」ではダメで「utf8_bin」でもダメでした。 PHPにて「%カルビ%」の検索結果から「カルピス」を除去すればいいのですが、 MySQLにて検索で濁点や半濁点をヒットさせない方法はありますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こちらでは col like '%カルビ%' collate utf8_bin の場合は清音、濁点、半濁点を区別するようですが。 よろしければ、collateをどのように指定しているか教えてください。
お礼
検索にて ~and menu.NAME like "カルビ" collate utf8_bin~ とすることで解決しました。 検索時に明示しなきゃならないんですね。 照合順序を設定してもダメなんですね。
補足
phpmyadmin 上でテーブルに対して指定しています。 ALTER TABLE `menu` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; としているようです。 検索時 sqlステーメントではなにもしていません。 ~and menu.NAME like "%'.$keywordesc.'%"~