Выборочный DUPLICATE KEY UPDATE
Хочу добавить новые строки , а строки с одинаковыми ключами обновить свежими данными, но только те, где ok = 1 Сейчас
INSERT INTO `table` ( `id`,`comment`) VALUES $vs ON DUPLICATE KEY UPDATE `comment` = VALUES(`comment`)
Хочу
INSERT INTO `table` ( `id`, `comment`) VALUES $vs ON DUPLICATE KEY UPDATE `comment` = VALUES(`comment`) WHERE `ok`=1
Знаю, что WHERE при INSERT и ON DUPLICATE KEY UPDATE недопустимы. Как реализовать желамое ?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
INSERT INTO `table` ( `id`, `comment`)
VALUES $vs
ON DUPLICATE KEY UPDATE
`comment` = CASE WHEN `ok`=1
THEN VALUES(`comment`)
ELSE `comment`
END;