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

 
0
 
MySQL
ava
maxipub | 14.09.2016, 11:10
Добрый день!

Есть такой запрос:

INSERT INTO TABLE SET id=123, info=456 ON DUPLICATE KEY UPDATE info=456;


Как можно добавить в него условие, чтоб ODKU выполнялся только когда info=789 или IS NULL?
Ответы (3)
ava
Akina | 14.09.2016, 12:59 #
Да, можно. Соответствующим CASE в правой части оператора присвоения.
ava
maxipub | 27.09.2016, 15:10 #
Akina, спасибо!

INSERT INTO TABLE SET id=123, info=456 ON DUPLICATE KEY UPDATE info=CASE WHEN IFNULL(info, 789)=789 THEN 456 ELSE info END


А теперь еще вопрос по теме. Есть у нас table2. Как ее значения можно наложить на весь INSERT ... ODKU ... чтобы INSERT/UPDATE выполнялся только тогда, когда для строчки table2.id=123 (id - уникальное поле) значение ячейки table2.stat='ok' ? Второй день бьюсь над вопросом.
ava
Akina | 27.09.2016, 17:47 #
Цитата (maxipub @  27.9.2016,  16:10 findReferencedText)
чтобы INSERT/UPDATE выполнялся только тогда, когда для строчки table2.id=123 (id - уникальное поле) значение ячейки table2.stat='ok' ?

Ну дык ЭТО же фильтруется ещё в секции WHERE... что там не прошло контроля, в ODKU никак не попадёт.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  Akina   maxipub
advanced
Отправить