请选择 进入手机版 | 继续访问电脑版

[MySql] Mysql 字符集不划一 导致连表非常 的办理

[复制链接]
查看75 | 回复6 | 2021-9-13 00:56:55 | 显示全部楼层 |阅读模式
目次

做一个简单的如下的连表查询,居然直接提示错误,居然是字符集不同等 的标题 ,本文记录一下mysql的字符集范例 ,以及下面这个标题 的办理 方案

  1. select a.id, b.id from tt as a, t2 as b where a.xx = b.xx
  2. -- Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
复制代码

1. 办理 方法

先来看上面这个标题 的办理 方法,最轻易 想到的就是同一 两张表的字符集,要么都是utf8mb4_general_ci,要么就都是utf8mb4_unicode_ci,同一 一下这个标题 就自然 办理 了
假如 我不想修改表的字符集呢?毕竟生产环境下,做这种操作还是有风险的,下面是一种不太优雅的办理 方法

在字段后面指定字符集(可以全部都指定为utf8mb4_general_ci 当然也可以全部指定为 utf8mb4_unicode_ci, 根据现实 必要 举行 处理即可)

  1. select a.id, b.id from tt as a, t2 as b where a.xx = b.xx collate utf8mb4_general_ci
复制代码

2. mysql字符集

字符集

对于国内的小伙伴,一样寻常 而言我们常见的字符集有下面三种

  • gbk: 两字节
  • utf8: 三个字节
  • utf8mb4: 四个字节

而mysql现实 支持的就比较多了,可以通过show charset;举行 查询

Mysql 字符集不划一

导致连表非常
的办理

校验规则

在现实 的case中,常常 会看到下面几种

  • utf8_bin
  • utf8mb4_unicode_ci
  • utf8mb4_general_ci
  • latin1_general_cs

当然我们也可以通过 show collation;查看所支持的校验规则

Mysql 字符集不划一

导致连表非常
的办理

请注意 上面的写法

  • ci: case insensitive的缩写 大小写不敏感
  • cs: case sensitive 大小写敏感
  • bin: 二进制存储,大小写敏感

到此这篇关于Mysql 字符集不同等 导致连表非常 的办理 的文章就先容 到这了,更多干系 Mysql 字符集连表非常 内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar JDLMDJIA | 2021-9-18 18:20:21 | 显示全部楼层
admin楼主,您忘记吃药了吧?
回复

使用道具 举报

avatar 我是来围观的逊 | 2021-9-19 06:48:43 | 显示全部楼层
admin楼主看起来很有学问!
回复

使用道具 举报

avatar 浩渺小竹排浩az | 2021-9-20 21:59:57 | 显示全部楼层
admin楼主最近很消极啊!
回复

使用道具 举报

avatar Mionsterv | 2021-10-3 20:02:12 | 显示全部楼层
大神好强大!
回复

使用道具 举报

avatar 水497 | 2021-10-10 17:29:37 | 显示全部楼层
好无聊啊!
回复

使用道具 举报

avatar 一夜雨十年灯潞 | 2021-10-11 17:17:40 | 显示全部楼层
有节操!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则