2013-10-17 91 views
0

如果另一列大于零,我需要更新一列。我写了这个MySQL UPDATE CASE WHERE

UPDATE `product` SET `quantity`= CASE 
WHEN `price` > 0 
THEN `quantity` = 1000 
ELSE `quantity` = 0 
END 

问题是这个查询只影响了47行,它应该在1000行左右。我究竟做错了什么?

回答

0

检查应该影响的行数:

SELECT COUNT(1)从产品,其中价格> 0和数量<> 1000; 从价格<> 0且数量<> 0的商品中选择支数(1)

0

正确的语法是这样的:

UPDATE `product` 
SET `quantity`= CASE WHEN `price` > 0 THEN 1000 ELSE 0 END 
0

尝试这个...

UPDATE product SET quantity = CASE WHEN price > 0 THEN 1000 ELSE 0 END 
0

尝试这样的。

UPDATE `product` SET `quantity`=(case when `price` > 0 then quantity='1000' else quantity='0' end)