alektive
@alektive

Как осуществить массовый UPDATE в MySQL через PHP?

Хотелось бы спросить у Вас как лучше сделать массовое обновление записей в базе данных MySQL.

Суть такова:
* Сначала нужно вытащить из БД все поля по критерию. Сделаю это через SELECT.
* Получу массив со значениями id, money, proc
* Через свою функцию обновлю значение proc.
* Нужно обновить поле proc по критерию id.

Подскажите наиболее оптимальный вариант для моей задачи. Я боюсь как бы не вышла какая-нибудь ошибка.
  • Вопрос задан
  • 4672 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если proc меняется по простому правилу (например, proc=proc+1), то
UPDATE `table` SET `proc`=`proc`+1 WHERE ...
Если новое значение proc через старое получить в MySQL сложно, и id уникальные (PRIMARY KEY или UNIQUE), то
INSERT INTO `table` (`id`, `proc`) 
    VALUES ($id1, $proc1), ($id2, $proc2), ... 
    ON DUPLICATE KEY UPDATE SET `proc` = VALUES(`proc`)

Если id неуникальные, то только отдельными запросами
UPDATE `table` SET `proc` = $proc1 WHERE `id` = $id1
UPDATE `table` SET `proc` = $proc2 WHERE `id` = $id2
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
benbor
@benbor
Помог ответ - не забудь лайкнуть
Лучше это делать так, как делаете вы, всетаки обработку данных лучше писать на PHP чем на MYSQL. Но, если вы хотите - пожалуйста, хранимые процедуры Вам в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы