Вставка ODKU с условием - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый день! Есть такой запрос:
INSERT INTO TABLE SET id=123, info=456 ON DUPLICATE KEY UPDATE info=456;
Как можно добавить в него условие, чтоб ODKU выполнялся только когда info=789 или IS NULL?

Решение задачи: «Вставка ODKU с условием»

textual
Листинг программы
INSERT INTO TABLE SET id=123, info=456 ON DUPLICATE KEY UPDATE info= CASE WHEN IFNULL(info,789)=789 THEN 456 ELSE info END

Объяснение кода листинга программы

В представленном коде выполняется вставка данных в таблицу MySQL с условием обновления существующих записей, если они имеются, с использованием оператора ON DUPLICATE KEY UPDATE. Список действий, выполняемых в данном коде:

  1. Вставить данные в таблицу TABLE с помощью оператора INSERT INTO.
  2. Указать значения для двух переменных: id и info.
  3. Если запись с первичным ключом id уже существует в таблице (DUPLICATE KEY), то выполнить обновление данных с помощью оператора ON DUPLICATE KEY UPDATE.
  4. Обновить значение переменной info в соответствии с условием CASE WHEN IFNULL(info,789)=789 THEN 456 ELSE info END. Таким образом, в результате выполнения данного кода в таблице TABLE будет вставлена новая запись с указанными значениями переменных id и info, а если запись с таким id уже существует, то значение переменной info будет обновлено согласно указанному условию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5