ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
时间: 2023-11-23 22:55:27 浏览: 860
MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci
5星 · 资源好评率100%
这个错误通常是由于在比较操作中使用了不同字符集的字符串而导致的。在MySQL中,每个列都有一个默认的字符集和排序规则,如果在比较操作中使用了不同字符集的字符串,就会出现这个错误。解决这个问题的方法是将所有字符串转换为相同的字符集或更改列的字符集和排序规则。以下是两种解决方法:
1. 将所有字符串转换为相同的字符集
可以使用CONVERT函数将所有字符串转换为相同的字符集。例如,如果要将所有字符串转换为utf8mb4_0900_ai_ci字符集,可以使用以下查询:
```sql
SELECT * FROM table WHERE CONVERT(column USING utf8mb4_0900_ai_ci) = 'string';
```
2. 更改列的字符集和排序规则
如果您经常使用不同字符集的字符串进行比较操作,可以考虑更改列的字符集和排序规则。例如,如果要将列的字符集和排序规则更改为utf8mb4_0900_ai_ci,可以使用以下查询:
```sql
ALTER TABLE table MODIFY column VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
```
阅读全文