Blog

concrete5の検索ブロックで mysql error: Illegal mix of collations for operation ‘like’

Posted by admin at 10:19 日時 2013/07/01

concrete5の検索ブロックを設置して検索してみたら、こんな感じのエラーが発生。

mysql error: [1271: Illegal mix of collations for operation ‘like’] in EXECUTE(“select p1.cID, pt.ctHandle from…

collations とは文字セットの照合順序のこと。おかしいなと思ってデータベースの照合順序を確認するが、全テーブル utf8_general_ci で統一されている。分からんのでググると、すぐヒントがありました。

No a DATETIME does not have a collation.
– Illegal mix of collations for operation ‘like’… ? – Dev Shed

はあ、日付は照合順序を持たないのでlike検索できないそうです。ページ属性を確認したらProEventアドオンが追加した日付フィールドが全て検索に含まれる設定になっていました。これを外して解決。

今回日本語の文字列を検索したせいでエラーになったけど、本来DATETIMEであってもLIKE検索できるはず。試しに数字やアルファベットだとエラーは出ませんでした。なるほどね。concrete5を日本語環境で使う際は、日付タイプの属性の検索設定には注意したほうがいいと思います。


Share this entry