Illegal mix of collations utf8mb4_0900_ai_ciIMPLICIT and utf8mb4_general_ciIMPLICIT for operation =错误怎么解决
这个错误是由于比较操作符(=)应用于具有不同校对规则的字符集的列引起的。
要解决这个错误,有几种方法可以尝试:
- 修改表格结构:将涉及到比较操作的列的校对规则统一为相同的规则。可以使用ALTER TABLE语句来修改表格结构。
例如,如果出现错误的比较操作是在表格的name列上进行的,你可以使用以下命令将其校对规则修改为相同的规则:
ALTER TABLE 表名 MODIFY COLUMN name 列类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
- 修改查询语句:在查询中明确指定使用的校对规则,以确保比较操作应用于相同的规则。
例如,如果查询是在name列上进行的,你可以将查询修改为以下形式:
SELECT * FROM 表名 WHERE name COLLATE utf8mb4_0900_ai_ci = '某个值';
- 修改数据库连接的默认字符集和校对规则:通过修改数据库连接的默认字符集和校对规则,可以确保所有的比较操作都应用于相同的规则。
例如,在MySQL中,可以在连接数据库前执行以下命令来修改默认字符集和校对规则:
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_0900_ai_ci';
请注意,这种方法会影响所有连接到该数据库的应用程序。
总之,要解决这个错误,你需要确保比较操作应用于相同的校对规则。你可以通过修改表格结构、修改查询语句或修改数据库连接的默认字符集和校对规则来实现
原文地址: http://www.cveoy.top/t/topic/h00s 著作权归作者所有。请勿转载和采集!