Я создал таблицу и вставил значения, как показано ниже.Обновить только один столбец (следующий столбец), если предыдущий столбец пуст
create table mytable (id INT, col1 INT, col2 INT, col3 INT);
insert into mytable values
(1,1,1,NULL),
(2,1,NULL,NULL);
То, что я хочу сделать, это обновление col2 если col1 не является нулевым, обновление col3 если col2 не пусто и так далее ... Но только один столбец, чтобы обновить.
Рассмотрите, что я хочу обновить данные для id = 2, тогда необходимо обновить только col2, а не col2, col3, поскольку оба значения равны нулю.
Когда я попытался с нижеследующим запросом, то все столбцы обновляются.
update myTable set
col1 = (IF (col1 is null, 9, col1)),
col2 = (IF (col2 is null, 9, col2)),
col3 = (IF (col3 is null, 9, col3));
Что необходимо сделать, чтобы обновить только один столбец.
Ваш код обновляет каждую колонку nul. Поместите условие в колонку раньше! – Samson
Col2 = if col1 is null ... – Samson
На этом проклятом телефоне я не могу редактировать комментарии. Для col2 вам нужно проверить, не был ли col1 недействительным до того, как вы обновите, для col3 проверьте col1 amd col 2 и так далее – Samson