UPDATE нескольких строк одним запросом
Бывают ситуации, когда нам нужно вставить несколько записей в таблицу одновременно. В принципе подобную задачу довольно просто решить одним, следующим запросом:
INSERT INTO `table` (`name`, `value`) VALUES ('Вася', 'qwerqwr'), ('Петя', 'fgdgsdg'), ('Коля', 'tryurty');
А вот, скажем, если нам нужно не вставить, а обновить данные? Так сказать, произвести множественный UPDATE ? – Тут ситуация сложнее. В данной ситуации можно использовать тот же INSERT таким образом (поле id – AUTO_INCREMENT PRIMARY KEY):
INSERT INTO `table` (`id`,`name`, `value`) VALUES (1, 'Вася', 'qwerqwr'), (2, 'Петя', 'fgdgsdg'), (3, 'Коля', 'tryurty') ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `value` = VALUES(`value`)
В данном запросе мы специально провоцируем конфликт ключей по полю ID, тогда то и выполняется ON DUPLICATE KEY UPDATE, и данные в полях, ключи которых вызовут конфликт - обновятся.
Каталог товаров для ремонта ванной
Каталог товаров для ремонта ванной от компании "Ремонт 365".
www.remont-365d.ru
Прямоугольные индуктивные датчики
Приобрести прямоугольные индуктивные датчики в Москве от интернет-магазина Leuze.
leuze.ru
Добавить комментарий
Информация копипастерам
Внимание! Копирование контента с сайта, возможно только с разрешения администратора. Т.е. Меня! Я скорее всего разрешу Вам это сделать, в обмен на живую ссылку, на статью оригинал.