2017-08-26 73 views
-1

我要更新termek_keszlet_db场,如果该字段的心不是的值为0 我怎么能在下面的SQL编写的,如果条件?mysql的更新,如果字段值为0的心不是

$keszlet_csokkent_sql = "UPDATE termek SET termek_keszlet_db = termek_keszlet_db-$db WHERE termek_id = $id"; 

这是一家网上商店的股票数据,如果有新订单,我想更新产品库存。

+0

您可以使用IF()函数来提供赋值右侧的值。 –

回答

0

我猜你真的想这样:

UPDATE termek 
    SET termek_keszlet_db = GREATEST(termek_keszlet_db - $db, 0) 
    WHERE termek_id = $id; 

这将确保​​从未设置为负值。

请注意$db$id应作为查询参数传入。您不应该使用参数值查询字符串(当您可以避免这样做时)。

+0

是的!我termek_keszlet_db值是10,但我订购12后,termek_keszlet_db将-2。谢谢! – Parkolo11

0

您需要添加一个AND条件termek_keszlet_db != 0

$keszlet_csokkent_sql = "UPDATE termek SET termek_keszlet_db = termek_keszlet_db-$db WHERE termek_id = $id AND termek_keszlet_db != 0"; 
+0

所以我不需要IF? – Parkolo11

+0

您需要检查该字段是否为0,您不需要“IF”。 –