花了一个小时搜索并尝试完成这项工作。开始讨厌mysql。 我在这里做错了什么?
UPDATE product_reward pr
LEFT JOIN product p ON (pr.product_id = p.product_id)
LEFT JOIN product_special ps ON (pr.product_id = ps.product_id)
SELECT CASE ps.price
WHEN NULL
THEN SET pr.points = ROUND(p.price * 1);
ELSE
SET pr.points = ROUND(ps.price * 1);
END;
我尝试使用普通IF ELSE
,但显然只能在程序中使用。
我只是在特殊价格为NULL
时尝试根据正常价格设定积分。
答案 0 :(得分:2)
试试这个或查看Mysql Update with if statement
UPDATE product_reward pr
LEFT JOIN product p ON (pr.product_id = p.product_id)
LEFT JOIN product_special ps ON (pr.product_id = ps.product_id)
SET pr.points = ROUND(COALESCE(ps.price, p.price) * 1)