Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '='
时间: 2023-10-17 14:30:46 浏览: 1034
MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci
5星 · 资源好评率100%
这个错误提示表明你在进行比较操作时使用了不兼容的字符集。具体来说,你在比较时将一个使用"utf8mb4_0900_ai_ci"字符集的值与一个使用"utf8mb4_unicode_ci"字符集的值进行了比较。
为了解决这个问题,你需要确保比较操作的两个值使用相同的字符集。你可以通过以下方式进行调整:
1. 调整表的字符集:将表中的列使用相同的字符集进行创建或更改。你可以使用 ALTER TABLE 语句来修改表的字符集。
例如,如果你想将表的字符集修改为"utf8mb4_unicode_ci",可以执行以下命令:
```
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 调整比较操作的字符集:在比较操作中显式指定字符集。你可以使用 COLLATE 关键字来指定要使用的字符集。
例如,如果你想将一个使用"utf8mb4_unicode_ci"字符集的值与一个使用"utf8mb4_unicode_ci"字符集的值进行比较,可以执行以下命令:
```
SELECT * FROM table_name WHERE column_name COLLATE utf8mb4_unicode_ci = 'value' COLLATE utf8mb4_unicode_ci;
```
请根据你的实际情况选择适合的方法来解决这个问题。记得在做任何修改之前备份你的数据。
阅读全文