美文网首页
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