在MySQL中,查询数据不分区大小写,例如:输入为abc,Abc或ABC都能查询同样的结果,说明查询条件对大小写不敏感。
举个列子:
而字段值的大小写规则是由MySQL的collate控制的,collate是字符集内用于比较字符的一套规则,其命名规则通常为字符集名+语言名+collate规则。以utf8字符集为例:
utf8_general_bin
: 表示的是binary case sensitive collation,也就是说是区分大小写。utf8_general_cs
: case sensitive collation,区分大小写。utf8_general_ci
: case insensitive collation,不区分大小写。
我司当前使用RDS字符集默认为utf8_general_ci
。
解决方法
1.在查询语句中的列名前加BINARY
关键字:
2.修改该字段的collation 为 binary:
与MySQL不同,DB2,Oracle查询时是区分大小写的。这也不能说明区分大小写这块孰优孰劣,能否处理大小写,应主要还是业务需求驱动。