mysql字符集问题

1.java.sql.SQLException: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

上面的问题就是因为关联查询的时候两个表字段的字符集不一致导致这样的问题

你可以去修改表的字符集:
当然windows系统可以在Navicat中手动修改。
但是在 linux 生产环境中可以执行以下命令来修改字符集:

# 修改表中的某个字段的字符集
# 			  表名		  字段 字段   类型								    字符集
ALTER TABLE person CHANGE sex sex VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;

# 修改表的默认字符集,以及 表中所有字段的字符集
ALTER TABLE person CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

# 修改表的默认字符集   这个sql 有可能 解决不了以上问题
ALTER TABLE  表名  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2.查看表的所有字段字符集

SHOW FULL COLUMNS FROM 表名;

3.一个字符问题
在这里插入图片描述
发生的原因是:COLLATE xxx_ci 的意思是:Case Insensitive 不区分大小写
在这里插入图片描述
4.再提一嘴,不知道对错

这个是因为里面的 ? 这个字符插不进去,是因为我用的utf-8的编码格式,可以自己试试;
mysql中的utf8并不是真正的utf-8,这是mysql的一个失误,至于为什么不修复bug,是因为修复的话需要所有用户重新构建数据库;
2010年发布的 utf8mb4 才是真正的utf-8,utf-8支持4个字节,而mysql中的utf8只支持3个字节;
所以说 mysql 中的 utf8mb4 支持的 字符 要比 utf8 多,新系统建议使用 utf8mb4;

我试了试utf8bm4 好像也插不进去 ? 这字符是什么鬼,
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值