项目在上线测试的时候,测试那边尝试创建了一个产品hbb,提示失败,但是这个产品系统中实际是没有的。为此我们定位了一下,发现存在一个HBB。然后重复测试发现这里的判断好像没有区分大小写。查找了资料发现默认是不区分大小写的。如果要区分需要主动添加一些参数:
一般情况下mysql不区分大小写
mysql> select * from product where _name = 'hbb';
+-----+-------+-------+------------+
| _id | _name | _desc | _is_active |
+-----+-------+-------+------------+
| 74 | HBB | | 1 |
+-----+-------+-------+------------+
1 row in set (0.00 sec)
这在一定程度上会影响用户的使用和数据的正确性。
怎么处理?
在查询的时候添加一个binary字段即可
mysql> select * from product where binary _name = 'hbb';
Empty set (0.00 sec)
mysql> select * from product where binary _name = 'HBB';
+-----+-------+-------+------------+
| _id | _name | _desc | _is_active |
+-----+-------+-------+------------+
| 74 | HBB | | 1 |
+-----+-------+-------+------------+
1 row in set (0.00 sec)
而且这个不影响正常的使用