@AlexandrMa

Как соединить запросы на примере?

Задача такова: к цене закупки `price_z`, надо добавить наценку. Сейчас это 4 запроса. Реально ли соединить в один?

UPDATE `products` SET `price` = ROUND((`price_z` / 100) * 110) WHERE `price_z` BETWEEN 1 AND 100000 AND `date_price` = CURDATE();

UPDATE `products` SET `price` = ROUND((`price_z` / 100) * 109) WHERE `price_z` BETWEEN 100001 AND 200000 AND `date_price` = CURDATE();

UPDATE `products` SET `price` = ROUND((`price_z` / 100) * 108) WHERE `price_z` BETWEEN 200001 AND 300000 AND `date_price` = CURDATE();

UPDATE `products` SET `price` = ROUND((`price_z` / 100) * 107) WHERE `price_z` > 300000 AND `date_price` = CURDATE();


`date_price` = CURDATE() тоже желательно использовать в условии. Хотя для начала можно и без него, чтобы понять :)
  • Вопрос задан
  • 16 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Вот держите:
UPDATE
	`products` 
SET `price` = ROUND((`price_z` / 100) * (
     CASE 
  	WHEN `price_z` BETWEEN 1 AND 100000 THEN 110
  	WHEN `price_z` BETWEEN 100001 AND 200000 THEN 109
  	WHEN `price_z` BETWEEN 200001 AND 300000 THEN 108
  	ELSE 107
      END
))
WHERE  `date_price` = CURDATE();


выполнить SQL запрос
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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