• ベストアンサー

検索で濁点や半濁点をヒットさせない

MySQLで検索をすると濁点や半濁点もヒットしてしまいます。 「%カルビ%」で、「カルビスープ」も「カルピス」もヒットしてします。 照合順序は「utf8_unicode_ci」ではダメで「utf8_bin」でもダメでした。 PHPにて「%カルビ%」の検索結果から「カルピス」を除去すればいいのですが、 MySQLにて検索で濁点や半濁点をヒットさせない方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

こちらでは col like '%カルビ%' collate utf8_bin の場合は清音、濁点、半濁点を区別するようですが。 よろしければ、collateをどのように指定しているか教えてください。

yamyam_ooo
質問者

お礼

検索にて ~and menu.NAME like "カルビ" collate utf8_bin~ とすることで解決しました。 検索時に明示しなきゃならないんですね。 照合順序を設定してもダメなんですね。

yamyam_ooo
質問者

補足

phpmyadmin 上でテーブルに対して指定しています。 ALTER TABLE `menu` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; としているようです。 検索時 sqlステーメントではなにもしていません。 ~and menu.NAME like "%'.$keywordesc.'%"~