Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
时间: 2023-10-27 16:50:40 浏览: 93
jce_policy-8_2021年11月下载.zip
这个错误通常是由于比较的两个字符串使用了不同的字符集导致的。utf8_general_ci 和 utf8_unicode_ci 是两种不同的字符集校对规则,虽然它们都是基于 UTF-8 编码的,但它们的比较规则略有不同。
解决这个错误的方法是将比较的两个字符串的字符集统一起来。可以通过以下两种方式来解决:
1. 将表或字段的字符集修改为一致的字符集。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 将其中一个字符串转换为另一个字符串的字符集。
SELECT * FROM table_name WHERE CONVERT(column_name USING utf8mb4) = 'string';
需要注意的是,修改字符集可能会导致数据丢失或者乱码等问题,需要谨慎操作,最好在备份数据后再进行操作。
阅读全文