mysql utf8mb4 大小写_关于Mysql数据库建库字符集utf8mb4下,排序规则utf8mb4_bin和utf8mb4_general_ci选择造成的查询匹配大小写问题...

场景描述:

项目采用了分库模式进行不同业务的开发,在共有的功能模块进行设计的时候采用主从库,或者各分库之中存在同样的库表结构,在使用过程中做库表同步的时候一定要保证库表所在的数据库的字符集和编码格式是保持一致的。否则完成库表同步或者迁移之后会造成查询问题:各独立库表查询数据都没有问题,但是在等值查询或者关联查询的时候会出现查询数据为空的现象;骚操作:在A库中把表建好了,copy到B库中,导致库表的排序规则不一致大小写匹配的时候出现问题。

逻辑描述:

在数据从app入库的时候存储的是大写的字符code:123XXX,然后数据库查询的时候传入的是小写的code:123xxx,这时候是能查到的。然后二次存入的时候会以二次输入的code作为入参,这样存到后台就变成小写的code:123xxx。这是数据库存在了大小写不同的数据,此时如果有存在关联查询以code为关联外键的时候会出现查询的时候存在大小写匹配失败导致查询失败。

所以:

不同的数据库建立一定要保持字符集和排序规则一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQLutf8mb4 字符集使用的是 utf8mb4_general_ci 排序规则,该排序规则是不区分大小写的。也就是说,在 utf8mb4_General_ci 排序规则下,大写字母与小写字母是相同的。 因此,如果需要在 MySQL 中区分大小写,您可以使用其他排序规则,如 utf8mb4_bin。 不过,请注意,改变排序规则可能会对已存储的数据产生影响,因此请谨慎操作。 ### 回答2: MySQLutf8mb4_general_ci排序规则默认是不区分大小写的。 在MySQL中,排序规则决定了字符的比较和排序方式。而utf8mb4_general_ci排序规则表示使用UTF-8编码进行排序,并且对大小写不敏感。这意味着在使用utf8mb4_general_ci排序规则时,MySQL将不会区分字符的大小写。 例如,对于英文字符A和a,MySQL将认为它们是相等的,无论它们出现在查询条件、排序语句还是索引中,都将被视为相同的字符。 但需要注意的是,utf8mb4_general_ci排序规则是对英文字符的不区分大小写操作,对于其他一些语言或特殊字符,也许会有不同的规则。因此,在使用MySQLutf8mb4_general_ci排序规则时,仍然需要根据具体需求和数据特点来确定是否能满足需求。 如果需要进行区分大小写排序操作,可以选择其他排序规则,比如utf8mb4_bin排序规则utf8mb4_bin规则大小写敏感的,对于字符的比较和排序将严格按照字符的大小写来进行操作。 综上所述,MySQLutf8mb4_general_ci排序规则默认是不区分大小写的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值