在C#项目中,执行mysql的多表联查的时候报错:
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation =error code 1627
这种是由于数据库里面几张表的编码格式不一致,修改方式:
1、先查出该数据库里面,每张表的编码格式:
SELECT
*, 编码格式
FROM
(
SELECT
TABLE_NAME '表名',
TABLE_COLLATION '编码格式'
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = 'roll' -- roll替换成数据库名称
) AS tab
GROUP BY
编码格式
上面这个结果表明,该数据库里面存在的编码格式现在有两种
2、将不同的表的编码格式统一
SELECT
*
FROM
(
SELECT
TABLE_NAME '表名',
TABLE_COLLATION '编码格式'
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = 'roll' --roll替换成数据库名
) AS tab
查出所有的表的编码格式,确定你要更改的目标编码格式,修改语句格式:
ALTER TABLE 表名 COLLATE=utf8mb4_general_ci --这里的utf8mb4_general_ci 可以替换成你需要的编码格式