Illegal mix of collations (utf8_
2019-09-25 本文已影响0人
lew1sss
MySQL进行字符串比较时发生错误
今天在做一些多表查询时,MySQL报错:[Err] 1267 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
问题分析:表之间的编码不一致,或者是比较的字段之间的编码不一致。
解决方法:
- 查看表之间的编码是否一致;
show create table <表名>;
- 如果表不一致,修改其中一个表的编码格式,使其表间编码一致
alter table <表名> character set utf8 COLLATE utf8_general_ci;
- 表间编码一致仍出现同样错误,查询(相关查询语句的,=号两边)字段之间是否一致
show full columns from <表名>;
SELECT CHARSET(<字段名>) FROM <表名>;
- 修改字段编码
ALTER TABLE <表名> MODIFY <字段名> <字段类型> CHARACTER SET utf8 COLLATE utf8_general_ci;