Как умножить заменить на один столбец SQL - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь заменить все поля "имя" на "имя + 1" в одном обновлении.Например, я хочу, чтобы 2008 стал 2009, 2009 стал 2010 и т. Д.

Я сделал это только для одной замены:

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

Но если я хочу заменить сейчас 2009 к 2010 году,это будет неправильно, потому что это изменит и 2009 год моего последнего запроса.

Вот мой дБ:

enter image description here

Как я могуувеличить все эти годы "имя" в одном запросе без конфликта и без начала к последнему году?

Спасибо за ваше время.

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

Пока значение столбца чисто числовое , даже если его тип данных varchar, вам не нужно приводить. MySql делает неявное приведение :

update tablename
set name = name + 1;

См. Демонстрационную версию .

1 голос
/ 03 мая 2019

Просто используйте casting ( как без знака для числового типа )

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

, учитывая, что ваш столбец (name) содержит только целочисленные значения года.

...