首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL数据表之间字符集不同连表查询报错

MySQL数据表之间字符集不同连表查询报错

作者头像
saintyyu
发布于 2021-11-22 01:58:10
发布于 2021-11-22 01:58:10
2.9K00
代码可运行
举报
文章被收录于专栏:IT专栏IT专栏
运行总次数:0
代码可运行

MySQL中如果两张表的字符排序集(Collate)不同(比如一张表为utf8mb4_general_ci, 另一张表为utf8mb4_unicode_ci),在连表查询时就可能会如下类似的错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '=' ###

可以通过如下语句修改表的字符排序集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER table table_name COLLATE=utf8mb4_general_ci;

不幸的是,即使改了之后还是会报错,原因是,该语句只能修改后续插入的数据,对于已存在的行记录则不会修改,需要再执行如下语句才能修改历史记录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE table_name convert to CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

两者合并起来就是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER table table_name COLLATE=utf8mb4_general_ci, convert to CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql8的collate问题和修改
用户3672714
2025/08/09
1120
1267-Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLIC for o...
今天LEFT JOIN 表,报如下错误: 1267-Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLIC for operation '=')
赵哥窟
2022/12/10
1.8K0
1267-Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLIC for o...
故障分析 | MySQL convert 函数导致的字符集报错处理
有客户之前遇到一个 mysql8.0.21 实例中排序规则的报错,是在调用视图时抛出,报错信息如下:
爱可生开源社区
2023/02/13
1.3K0
MySQL修改字符集utf8mb4
MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。
MySQL轻松学
2020/06/11
17.9K0
踩坑实录-datax数据推送字符集错误
产生原因分析: 普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点。
chimchim
2022/11/13
7200
mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for opera
昨天把mysql里所有table的varchar字段的字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 , 结果有一个sql语句执行时,报错如下: Illegalmixofcollations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)foroperation '= 观察了一下,这个sql使用了一个自定义的function,这个函数的入口参数为varchar,类似如下: CREAT
菩提树下的杨过
2018/01/18
1.3K0
MySQL字符集修改实战教程
在 MySQL 中,系统支持诸多字符集,不同字符集之间也略有区别。目前最常用的字符集应该是 utf8 和 utf8mb4 了,相比于 utf8 ,utf8mb4 支持存储 emoji 表情,使用范围更广。本篇文章将会介绍 utf8 修改成 utf8mb4 字符集的方法。
MySQL技术
2021/01/05
2.6K0
关于GreatSQL字符集的总结
最近的SQL优化工作中经常遇到因字符集或校验规则不一致导致索引使用不了的问题,修改表的字符集或校验规则相当于把表重构,表中数据量大时,处理起来费时费力,希望应用开发者在设计之初时注意到此问题,让后期接手运维的小伙伴少一些负担。GreatSQL的字符集和校验规则种类繁多,提供灵活性的同时,也带来使用混乱的烦恼。本文对字符集做一个总结,让读者对GreatSQL的字符集有一个全面的了解。
GreatSQL社区
2023/12/20
2450
关于GreatSQL字符集的总结
MySQL 8 批量修改字符集脚本
从低版本迁移到MySQL 8后,可能由于字符集问题出现 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) 错误,此时要修改对象的字符集。
用户1148526
2023/01/14
2.2K0
mysql修改表、字段、库的字符集
来源:http://www.diannaowa.com/index.php/archives/233
东营浪人
2019/09/05
8.2K0
深入理解MySQL字符集及校对规则(一)
在日常处理客户的问题中,会遇到非常多的客户反馈字符乱码的问题,遇到这类型的问题,我们要怎么去处理呢?又该怎么去引导用户去解决呢?
SEian.G
2021/03/03
1.7K0
记录:数据库字符编码gbk问题
问题描述:数据库字符编码为GBK,Spring Boot服务编码为UTF-8,导致服务在查询数据库的时候会出现如下异常。
HLee
2021/07/23
1.7K0
记录:数据库字符编码gbk问题
MySQL MGR监控中遇到的字符集Illegal mix of collations
ProxySQL整合MGR提供高可用,是我们知数堂课程中提供一个MySQL高可用的解决方案,架构如下:
阿炳数记
2021/07/15
9110
MySQL MGR监控中遇到的字符集Illegal mix of collations
MySQL字符集utf8mb4
Unicode是编码字符集,而UTF-8就是字符编码,即Unicode规则字库的一种实现形式。随着互联网的发展,对同一字库集的要求越来越迫切,Unicode标准也就自然而然的出现。它几乎涵盖了各个国家语言可能出现的符号和文字,并将为他们编号。
HLee
2021/07/23
1.7K0
MySQL字符集utf8mb4
最近遇到的一个库&表字符集大坑
我们生产环境的建表语句,之前一直要求研发提交时候不要带上字符集和排序集,这样就可以follow数据库默认的配置。但是最近发现掉坑里了。
保持热爱奔赴山海
2022/04/19
5860
最近遇到的一个库&表字符集大坑
不可忽视的MySQL字符集
墨墨导读:字符集是一组符号和编码。collation是一组用于比较字符集中的字符的规则。
数据和云
2021/03/30
2.3K0
不可忽视的MySQL字符集
MySQL 排序规则
每个 MySQL 字符集可以支持一个或者多个排序规则,用于定义每个字符的比较规则,包括是否区分大小写,是否区分重音等。
恋喵大鲤鱼
2023/10/12
1.2K0
MySQL 关键字专题(包含COLLATE)
SQL 是由关键字组成的语言,关键字是一些用于执行 SQL 操作的特殊词汇。在命名数据库、表、列和其他数据库对象时,一定不要使用这些关键字。因此,这些关键字是一定要保留的。
acc8226
2022/05/17
1.7K0
技术分享 | MySQL 5.7 升级 8.0 后,排序规则问题解决方案汇总
ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation 'find_in_set'
爱可生开源社区
2024/09/14
4570
技术分享 | MySQL 5.7 升级 8.0 后,排序规则问题解决方案汇总
存储emoji表情或特殊字符报错(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')
我在一篇文章中使用了emoji表情,前面很顺利,不管是WordPress还是其他博客园啥的,都是正常发送。
JanYork_简昀
2022/05/18
6670
存储emoji表情或特殊字符报错(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')
相关推荐
mysql8的collate问题和修改
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档