条件不起作用

时间:2013-01-20 00:10:55

标签: mysql

花了一个小时搜索并尝试完成这项工作。开始讨厌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时尝试根据正常价格设定积分。

1 个答案:

答案 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)