Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день!
Имеется таблица products
id (PK auto_increment)
name
price
in_stock
... остальные значения не имеют
В таблице будет порядка 10,000 записей.
Задачи:
1) обновить цену и количество у 50-ти товаров.
2) обновить цену и количество у всех товаров.
Какими способами это возможно сделать? (Главное скорость выполнения.)
З.Ы. на данный момент обновляются товары в цикле
foreach($_POST['id'])
{
UPDATE products SET price = цене, in_stock = количеству WHERE id = id
}
но мне это совсем не нравится.
Кто знает более интересное решение, подскажите пожалуйста.
Заранее благодарен!
Неактивен
REPLACE или INSERT ON DUPLICATE KEY UPDATE попробуйте.
Неактивен
Если я правильно понимаю, то REPLACE и INSERT ON DUPLICATE KEY UPDATE это в принципе одно и тоже.
А что произойдет, если например в админке один пользователь начнет изменять простыню (форму) из 50 товаров (только цены и кол-во), а другой в это время удалить один из этих товаров?
Естественно форма передает на сервер только id, price и in_stock, поэтому вставить новую запись не получится (колонок гораздо больше), да оно и не надо.
Посмотрел как это делает phpMyAdmin:
UPDATE products SET price = цене, in_stock = количеству WHERE id = 1;
UPDATE products SET price = цене, in_stock = количеству WHERE id = 2;
UPDATE products SET price = цене, in_stock = количеству WHERE id = 3;
это все он засовывает в один запрос.
На сколько я понимаю, это равносильно трем отдельным запросам? или я не прав и этот "один" запрос выполнится быстрее?
Неужели в MySQL больше нет никаких вариантов по обновлению кучи строк?
Неактивен
«Моему автомобилю нужно поменять шины на новые. Можно поехать в автоцентр,
а можно поменять вручную под домом. Неужели больше нет никаких вариантов по
замене сразу четырех шин?»
Что Вас смущает? Шину украдут, пока вы будете менять? Будет ошибка, да.
Неактивен