mysql 查询时没有对字符串区分大小写处理方法

原因分析:

mysql 查询时没有对字符串区分大小写的原因主要在于创建表时没有指定其校对规则,或者校对规则设置成了不区分大小写。

区分大小写的设置通常是:  utf8****_bin  ,以 “_bin" 结尾的表示区分大小写,它表示的是:binary case sensitive collation

不区分大小写的设置通常是: ut8***_ci , 以 “_ci" 结尾的表示不区分大小写,它表示的是: case insensitive collation

 

解决方案:

1. 将需要区分大小写的字段,修改其字符串校验规则:

ALTER TABLE `test` 
MODIFY COLUMN `code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '编号' ;

2. 在查询时,在该列名前增加关键字 BINARY 即可,eg:   select * from test where binary code = 'abc';

3. 如果整个表中的字段都需要遵循区分大小写,最好的方式是重新建表,将数据备份后,在建表语句后面加入  COLLATE=utf8mb4_bin

4. 为了避免售后建表忘记加校验规则区分大小写,在创建数据库时,就需要指定字符集和字符校验规则:

eg :  CREATE DATABASE `Test` CHARACTER SET 'utf8' COLLATE 'ut8_bin';

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值