问题
最近在修数据库数据的时候,业务上要求我们需要将用户身份证字段中尾号为x的数据,将其都转换成大写,为此我编写了一个sql语句
SELECT USR_ID, USR_UNIQUE_DATA,USR_ID_NUM FROM `uml_user` where USR_UNIQUE_DATA like '%x';
在查询结果的时候,会发现大写的X对应的数据也会被查询出来,这样子就会导致我们修改数据的时候变的非常的麻烦。
分析
主要的原因:默认的编码格式是不区分大小写的,为此我们需要修改sql语句。
解决方案
我们只需要在查询的字段值之前加上关键字 BINARY即可。最终我们就可以查询到需要的数据。
SELECT USR_ID, USR_UNIQUE_DATA,USR_ID_NUM FROM `uml_user` where BINARY USR_UNIQUE_DATA like '%x';