MySQL查询时默认不区分大小写

做项目的时候发现个问题,登录的时候不管是用大写还是小写,都能查出来相同的用户。比如用m1登录和用M2登录,都可以查出来m1用户(表里面存的是m1)。看了看代码没什么问题,在数据库里面运行了一下sql,发现MySQL默认查询竟然是不区分大小写的。


查了查资料,有如下两种解决方法:

1.可以将查询条件用binary()括起来。  比如:     select  * from TableA  where  columnA like binary('aaa');
2. 可以修改该字段的collation 为 binary
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
附:
 *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
 *_cs: case sensitive collation,区分大小写
 *_ci: case insensitive collation,不区分大小写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值