如何在同一列上乘以替换 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。
我试图在一次更新中将所有字段 "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。