読者です 読者をやめる 読者になる 読者になる

Illegal mix of collations エラーについて2

mysql

以前も同様の記事を書いたけど、また出くわしたのでメモしておく。

SELECT * FROM users WHERE CONCAT( sei, mei ) LIKE '%姓名%';

このようなSQLで姓名で検索をしようとしたら、「Illegal mix of collations 」が発生。

原因は、
users.sei -> utf8_general_ci
users.mei -> utf8_unicode_ci
であったため。

以下のようにバイナリに変換すればOK

SELECT * FROM users WHERE CONCAT( sei, CONVERT(mei USING binary) ) LIKE '%姓名%';