问题描述
前两天测试部反馈一个BUG , 说用户名大小写都能登录成功,当时在网上了解了一下,需要修改数据库配置,可是当时已经下班了运维的人已经走了。然后又埋头找了一会, 之后就有了这篇文章的由来。
- 运行已下两种sql
select * from `user` where `name` = 'admin' and `password` = '123456';
select * from `user` where `name` = 'Admin' and `password` = '123456';
- 得到的结果是相同的
user
password
nickname
admin
123456
老张
解决
- 建表时在字段后面加上
BINARY
:
CREATE TABLE T( A VARCHAR(10) BINARY );
- 修改数据表字段方式 :
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(255) BINARY;
以上两种方法是以修改字段为二进制的方式解决大小写问题.
网友评论