如何在同一列上乘以替换 SQL

How to multiply replace on the same column SQL

我试图在一次更新中将所有字段 "name" 替换为 "name+1"。例如,我希望 2008 年成为 2009 年,2009 年成为 2010 年,等等

我这样做只是为了一个替换:

UPDATE table
SET name = REPLACE(name, '2008', '2009');

但是如果我现在想在 2010 年之前替换 2009 年,那将是错误的,因为它也会更改我上次请求的 2009 年。

这是我的数据库:

我如何在一个请求中增加所有这些年份 "name" 而没有冲突并且没有从最近一年开始?

感谢您的宝贵时间。

只需使用casting作为无符号数字类型

update table
   set name = cast(name as unsigned) + 1;

考虑到您的列 (name) 仅包含整数年份值。

只要列值是纯数字,即使它的数据类型是varchar,你也不需要任何转换。
MySql implicit casting:

update tablename
set name = name + 1;

参见demo