[HY000][1267] Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
时间: 2023-11-23 21:54:33 浏览: 139
MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci
5星 · 资源好评率100%
这个错误提示是因为=号两侧内容的排序规则(collation)不一致导致的报错。具体来说,utf8mb4_0900_ai_ci和utf8mb4_general_ci是两种不同的排序规则,而这两种排序规则不能混用。解决这个问题的方法是将两侧的排序规则改成一致的。可以通过以下两种方法解决这个问题:
方法一:修改表结构
可以通过修改表结构的方式来解决这个问题。具体来说,可以将表中的所有字段的排序规则都改成utf8mb4_0900_ai_ci。可以使用以下SQL语句来实现:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
其中,table_name是需要修改的表名。
方法二:修改查询语句
如果不想修改表结构,也可以通过修改查询语句的方式来解决这个问题。具体来说,可以在查询语句中指定排序规则。可以使用以下SQL语句来实现:
SELECT * FROM table_name WHERE column_name = 'value' COLLATE utf8mb4_0900_ai_ci;
其中,table_name是表名,column_name是需要查询的字段名,value是需要查询的值。
阅读全文