mysql排序字符集问题:
mysql表的每个字段都可以设置单独的排序字符集和文本字符集,如果你创建表的时候不注意,很可能会遇到Illegal mix of collations这个问题。
问题描述
用mysql进行两个表的联合查询的时候,出现下面的错误。1Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
排查过程
- 通过google搜索找到原因,这个错误是mysql的排序字符集不一致导致的。
- 把联合查询的表使用navicat查看字段的设置,发现了有一个关联字段排序字符集的问题,如图:
- 这两个表中openid的排序规则不一致,导致出现问题。
解决方法
将user表中的字符集和排序规则设置为默认,保持一致即可。