项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf8_general_ci”,这个值表示是不区分大小写的。现将解决方法记录如下:
1.设置“COLLATE”属性值为“utf8_bin”或者“utf8_gerneral_cs”,utf8_bin表示二进制比较,同时也支持区分大小写;在Mysql5.6.10版本中,不支持utf8_genral_cs;
2.在创建表的时候,指定表字段COLLATE 为utf8_bin或者utf8_general_cs(注意版本),如:
alter table sample modify column module varchar(128) COLLATE utf8_bin ;
3.修改字段为BINARY:
alter table sample modify column module varchar(128) BINARY;
4.查询语句字段前面加BINARY:
select * from sample where BINARY module='SAMPLE';