Update table php + MySQL, Как сделать максимально эффективно с точки зрения производительности?
Есть таблица, которая хранит сведения о товарах вида:
CREATE TABLE `products ` (
`id` int(11) NOT NULL,
`name` tinytext,
`price` float(9,2) DEFAULT '0.00',
`color` tinytext,
UNIQUE KEY `id` (`id`)
) ENGINE=innoDB;
Стоит задача, обновить цену в зависимости от цвета товара.
Например, товарам с color=red цену уменьшить на 5%, товарам с color=green, увеличить цену на 10% и т.д.
Как это сделать максимально эффективно с точки зрения производительности? В стеке PHP + MySQL
Ответы (1 шт):
Автор решения: Chupaka
→ Ссылка
Ну, если решать проблему "в лоб" - тогда как-нибудь так:
UPDATE products SET price = CASE
WHEN color = 'red' THEN price * 0.95
WHEN color = 'green' THEN price * 1.10
ELSE price
END
Но вообще, как в комментариях уже отметили, лучше логику подсчёта цены сделать отдельным шагом в программе.