Быстрая заметка: массовый UPDATE в MySQL

Ни для кого не секрет как в MySQL реализовать массовый INSERT, а вот с UPDATE-ом могут возникнуть сложности. Чтобы не прибегать к манипуляциям события ON_DUPLICATE можно воспользоваться специальной конструкцией CASE … WHEN … THEN.

К примеру нам нужно обновить поля сразу нескольких пользователей одним запросом. Для этого воспользуемся конструкцией CASE. Она чем-то напоминает аналогичную условную конструкцию из PHP:

UPDATE `table` SET `uid` = CASE
    WHEN id = 1 THEN 2952
    WHEN id = 2 THEN 4925
    WHEN id = 3 THEN 1592
    ELSE `uid`
    END
WHERE id  in (1,2,3)

На большом объёме данных данный способ должен существенно выигрывать в скорости по сравнению с выполнением каждого запроса в отдельности.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.ruseller.com
Автор: Станислав Протасевич
Урок создан: 28 Апреля 2017
Просмотров: 10800
Правила перепечатки


5 последних уроков рубрики "Разное"

^ Наверх ^