MySql查询报错:Illegal mix of collations

今天用MySQL做了一个很简单类似于 UserName=‘张三‘的查询,居然报错了:

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ‘=‘

从错误描述来看应该是字符集的问题,我的问题倒是比较简单,纯粹是因为服务器端使用的编码是utf8,我在连接时使用了utf8mb4,改了一下连接就好了,不过这个问题也是头一次遇见,这个问题通常是因为比较了两个不同字符集的字符串或者对不同字符集的字符串组合引起的的。
网上关于这块错误的描述蛮多,大部分都是直接库或者改表的字符集,此类操作一定要慎重,尤其在操作生产环境时,碰到字符集问题时,一般可以从连接、服务器端、数据库、数据表各个层次去检查,确认是否一致,字符集的查看,像MySQL-Font、Navicat等客户端工具都可以很方便的查看,也可以使用命令show variables like "collation_database";或者show table status;查看。

MySql查询报错:Illegal mix of collations

上一篇:SQL——minus、union 、interspect


下一篇:【翻译】SQLite 不只是玩具数据库而已