MySQL更新所有身份证号最后一位是x的为X,请问语句怎么写

如题所述

稍微有点小尴尬的问题,原因在于,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';

额外需要注意的是,这个操作不会使用索引,故效率会比较低。如果记录数量很大的话,最好在业务低峰时段执行。或者使用其他的优化手段,以减小对服务器的压力。

温馨提示:答案为网友推荐,仅供参考
相似回答