mysql查询报错Illegal mix of collations...
出现Illegal mix of collations错误通常是由于数据库表中使用了不同的字符集(collations)导致的。在MySQL中,字符集(collations)是用来指定字符集编码规则的,例如:UTF-8、GBK等。当在一个查询或比较操作中,发现两个字符串的字符集(collations)不一致时,就会出现Illegal mix of collations错误。方案2:将表中所有字段的
一、出现原因
出现Illegal mix of collations错误通常是由于数据库表中使用了不同的字符集(collations)导致的。在MySQL中,字符集(collations)是用来指定字符集编码规则的,例如:UTF-8、GBK等。当在一个查询或比较操作中,发现两个字符串的字符集(collations)不一致时,就会出现Illegal mix of collations错误。
二、解决方案
方案1:在查询或比较操作中显式指定字符集(collations),例如:
select a.id,a.name from table1 a join table2 b on a.id=b.id where a.name COLLATE utf8mb4_general_ci = b.name COLLATE utf8mb4_general_ci
方案2:将表中所有字段的字符集(collations)改为相同的字符集(collations)。具体步骤如下:
- 查看表中所有字段的字符集(collations);
- 修改表中所有字符集(collations)为一致的字符集(collations);
- 对表中所有字段重新建立索引,以保证索引的一致性。
示例如下:
-- 查看表中所有字段的字符集(collations)
SHOW FULL COLUMNS FROM table_name;
-- 修改表中所有字段的字符集(collations)为utf8mb4_general_ci
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 修改表的字符集(collations)为utf8mb4_general_ci
ALTER TABLE table_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 对表中所有字段重建索引,如下重建主键索引,其他索引可自行修改
ALTER TABLE table_name DROP PRIMARY KEY, ADD PRIMARY KEY (id);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)