首页

解决mysql字符集"[Err] 1267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation.."错误

标签:mysql1267,MYSQL字符集     发布时间:2022-10-30   

一、错误说明

基于mysql的两个字符集不一样的数据库(一个是utf8mb4_general_ci,另一个是utf8mb4_0900_ai_ci),通过left join跨库关联表的中文字段查询时,因中文字符集不一致,直接报“[Err] 1267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='”错误异常提示。

二、解决方法

通过mysql的collate关键词进行字符集转义解决问题,具体sql示例说明如下

原报错SQL如下

select  cc.class_no,cc.class_name,ss.sex,ss.stu_age  from  db1.sch_class  cc  left join  db2.sch_student ss  @b@ on     cc.class_name=ss.cla_name

修改后SQL如下(最后加了collate  utf8mb4_general_ci - 根据具体字符集进行转换)

select  cc.class_no,cc.class_name,ss.sex,ss.stu_age  from  db1.sch_class  cc  left join  db2.sch_student ss  @b@ on     cc.class_name=ss.cla_name  collate utf8mb4_general_ci
  • ◆ 相关内容