, скажем, что у меня есть поле с именем «control». Если «control» имеет значение NULL, я должен обновить поля «control», «f1», «f2», «f3», «f4», «f5». Если «control» не равно null, мне нужно только обновить «f4» и «f5». Как я должен достичь этой цели? я пытался что-то вроде:mysql несколько обновлений, только если одно поле имеет нулевое значение
UPDATE table SET
control = IF(control IS NULL, 1, do_nothing),
f1 = IF(control IS NULL, value1, do_nothing),
f2 = IF(control IS NULL, value2, do_nothing),
f3 = IF(control IS NULL, value3, do_nothing),
f4 = value4,
f5 = value5
WHERE id = XX
но «контроль», как только быть установлен в 1 не равно нулю больше, так что другие обновления (но f4 и f5) не обрабатываются. Кроме того, как я могу сказать в инструкции if «do_nothing» на ветке ELSE? Путать. Я решил сделать выборку и вложенное обновление, но получил много ошибок. Спасибо всем
Честно говоря, я бы просто использовать оператор обновления для f4 и f5, а затем отдельное заявление для других столбцов. Возможно, вам удастся получить один оператор обновления, который сделает все это, но зачем работать так сложно? – user1618143
Упражнение :) Серьезно, потому что я хочу остаться «светлым» со страницей сценария, я хочу узнать что-то сложное о выражении UPDATE, которое мне не хватает, и потому, что я думаю, что он может быть элегантным, имея все в одном запросе. Я думаю, что у меня есть все инструменты для достижения этого, но я не могу их смешивать в правильном «рецепте» – Aptivus