2017-08-26 25 views
-1

フィールドの値が0でない場合、termek_keszlet_dbフィールドを更新します。 下のsqlにif条件を書き込むにはどうすればよいですか?フィールド値が0でない場合、Mysqlを更新します。

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

これはwebshopの在庫データです。新しい注文がある場合、商品の在庫を更新したいと思います。

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

これは​​が負の値に設定されることはありませんことを保証します:私はあなたが本当にこれがしたいことを推測してい

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

IF()関数を使用して、割り当ての右側に値を指定できます。 –

答えて

0

+0

はい!私はtermek_keszlet_dbの値は10ですが、私は12を注文し、注文後、termek_keszlet_dbは-2になります。ありがとう! – Parkolo11

0

あなたがAND条件termek_keszlet_db != 0を追加する必要があります。

クエリパラメータとして$db$idを渡す必要があることに注意してください。クエリ文字列にパラメータ値を追加するのは避けてください。

+0

だから私はIFが必要ないのですか? – Parkolo11

+0

フィールドが0かどうかをチェックする必要がありましたが、それには 'IF'が必要です。 –

関連する問題