如何撤销为u_id末尾追加000的SQL更新操作?
撤销末尾追加000的SQL更新操作
问题背景
我曾执行以下SQL语句更新
downloadable_link表,为符合product_sku='test-add'条件的记录的u_id字段末尾追加了000,现在需要撤销该操作,移除u_id末尾新增的000。UPDATE downloadable_link SET u_id = CONCAT(u_id, '000') WHERE product_sku = 'test-add'
解决方法
针对MySQL数据库,使用字符串截取函数移除末尾的三个字符即可:
UPDATE downloadable_link SET u_id = LEFT(u_id, LENGTH(u_id) - 3) WHERE product_sku = 'test-add'
关键说明
LENGTH(u_id) - 3计算出原字符串长度减去3,得到需要保留的字符长度LEFT()函数从字符串左侧截取指定长度的内容,精准去掉末尾追加的000- 必须保留
WHERE product_sku = 'test-add'条件,防止误操作其他无关记录
如果使用其他数据库,对应截取函数如下:
- PostgreSQL:
SUBSTRING(u_id FROM 1 FOR LENGTH(u_id) - 3) - SQL Server(针对
varchar类型):LEFT(u_id, LEN(u_id) - 3)
内容的提问来源于stack exchange,提问作者acctman
相关产品推荐
相关产品推荐

