Вставка ODKU с условием - MySQL
Формулировка задачи:
Добрый день!
Есть такой запрос:
Как можно добавить в него условие, чтоб ODKU выполнялся только когда info=789 или IS NULL?
INSERT INTO TABLE SET id=123, info=456 ON DUPLICATE KEY UPDATE info=456;
Решение задачи: «Вставка 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. Список действий, выполняемых в данном коде:
- Вставить данные в таблицу
TABLE
с помощью оператораINSERT INTO
. - Указать значения для двух переменных:
id
иinfo
. - Если запись с первичным ключом
id
уже существует в таблице (DUPLICATE KEY
), то выполнить обновление данных с помощью оператораON DUPLICATE KEY UPDATE
. - Обновить значение переменной
info
в соответствии с условиемCASE WHEN IFNULL(info,789)=789 THEN 456 ELSE info END
. Таким образом, в результате выполнения данного кода в таблицеTABLE
будет вставлена новая запись с указанными значениями переменныхid
иinfo
, а если запись с такимid
уже существует, то значение переменнойinfo
будет обновлено согласно указанному условию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д