2017-08-26 76 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」。 –