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

Но вообще, как в комментариях уже отметили, лучше логику подсчёта цены сделать отдельным шагом в программе.

→ Ссылка