您的位置:首页 > 数据库 > MySQL

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

2014-08-22 10:41 253 查看
做项目的时候发现个问题,登录的时候不管是用大写还是小写,都能查出来相同的用户。比如用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,不区分大小写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: