稍微有点小尴尬的问题,原因在于,MySQL默认是大小写不敏感的,也就是,如果你直接使用where id_no like '%x' 将会查出所有的结尾是x或者X的记录。
这个时候我们可以使用 关键字BINARY,来指定大小写敏感。
比如 select * from t where BINARY id_no like '%x'
上面是为了确定修改范围,下面来说说,如何改。
MySQL提供了一些转换大小写的方法:
INITCAP:转换每个字的第一个字符为大写
LOWER:转换所有字符为小写
UPPER:转换所有字符为大写
因此,我们最终的sql可以写成:
update t set id_no = UPPER(id_no) where id_no like '%x';额外需要注意的是,这个操作不会使用索引,故效率会比较低。如果记录数量很大的话,最好在业务低峰时段执行。或者使用其他的优化手段,以减小对服务器的压力。