【Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)】

执行一条简单的左连接查询时报错

  • 报错信息如下
  • 报错原因分析
  • 解决方案

报错信息如下

1267 - Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

执行sql如下

select * from student p right JOIN school l on p.`No` = l.`No`

报错原因分析

‘=’报的错,原因时student中的No的字符集和排序规则与school中的字符集和排序规则不一致,导致查询报错。

解决方案

修改一张表中的字符集和排序规则即可。修改代码如下

ALTER TABLE school(表名) CONVERT TO CHARACTER SET utf8mb4(字符集) COLLATE utf8mb4_general_ci(排序规则);

你可能感兴趣的:(mysql,java)