美文网首页
mysql报错 Illegal mix of collation

mysql报错 Illegal mix of collation

作者: 博楠同学 | 来源:发表于2019-09-25 13:18 被阅读0次

今天有个SQL执行不了,通过错误输出查到了问题,大致SQL如下:

SELECT * FROM `table` WHERE `field1`=`filed2`

这个SQL看起来是一点错误都没有,但是缺爆出了下面这个错误:

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

意思就是编码不一致不能用“=” 运算符。那怎么办呢。。。还用说就是转换编码了,还好MySQL也有相关的函数。

CONVERT(table-colum USING utf8) COLLATE utf8_unicode_ci

比如是field1编码是utf8_unicode_ci,filed2编码是utf8_general_ci那么就会出现,那么SQL语句应该修改成这样子。

SELECT * FROM `table` WHERE `field1`=CONVERT(`filed2` USING utf8) COLLATE utf8_unicode_ci

这样编码就统一了,不过这个只是临时解决。最终还是根解决最好,直接修改字段的本身编码。

相关文章

网友评论

      本文标题:mysql报错 Illegal mix of collation

      本文链接:https://www.haomeiwen.com/subject/bjpqyctx.html