SQL批量更新实现:将数据库unit列X.Z格式值转为X OZ
解决方法:批量更新unit列的格式
嘿,这个需求很好解决,用字符串替换的SQL语句就能一次性搞定所有符合格式的记录!不过不同数据库的函数语法大同小异,我给你列几个常用数据库的写法,记得把语句里的你的表名换成实际的表名哦:
MySQL/MariaDB
直接用REPLACE()函数替换指定字符串,再通过WHERE条件过滤出需要修改的行,避免误改其他数据:
UPDATE 你的表名 SET unit = REPLACE(unit, '.Z', ' OZ') WHERE unit LIKE '%.Z';
PostgreSQL
和MySQL的写法几乎一致,REPLACE()同样适用:
UPDATE 你的表名 SET unit = REPLACE(unit, '.Z', ' OZ') WHERE unit LIKE '%.Z';
如果后续有更复杂的格式需求,也可以用REGEXP_REPLACE()做正则替换,但当前场景下REPLACE()完全够用。
SQL Server
语法同样类似,用REPLACE()函数即可:
UPDATE 你的表名 SET unit = REPLACE(unit, '.Z', ' OZ') WHERE unit LIKE '%.Z';
Oracle
使用REPLACE()函数就能完成替换:
UPDATE 你的表名 SET unit = REPLACE(unit, '.Z', ' OZ') WHERE unit LIKE '%.Z';
重要提醒
在执行UPDATE之前,强烈建议先运行SELECT语句验证替换结果,确保符合预期:
SELECT unit, REPLACE(unit, '.Z', ' OZ') AS updated_unit FROM 你的表名 WHERE unit LIKE '%.Z';
另外,执行更新前最好备份一下数据,防止意外情况发生~
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

