问题描述
写登录功能时遇到的问题,具体表现为MySQL在查询英文字符串时的大小写不敏感。
比如表中有 abc,Abc,ABC 三条数据。查询时输入ABC,应该只能查出1条,但是3条都查出来了。
解决方案
查了网上的一些解决方案,大多是叫改配置文件的。我找到了一种不需要修改配置文件的方法:在查询字符串前加 binary
。
select * from [表名] where [条件] = BINARY '条件';
-- 原写法
select * from test where name = 'ABC';
-- 在查询字符串前加 binary
select * from test where name = binary 'ABC';