赞
踩
在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 可以替换成你需要的编码格式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。