0

次のコードがあります

$this->db->query("UPDATE customer_product_owned
   SET quantity = (max(0, (quantity - " . (int)$order_product_upgrade['quantity'] . ")))
   WHERE customer_id = '" . (int)$order_info['customer_id'] . "'");

数量フィールドの値からphp変数を減算したいと思います。ただし、値が 0 未満の場合は、値を 0 にしたいと考えています。

ここで何が間違っていますか?max は「セット」内で使用できますか? 最初に数量の値を見つけることにより、事前に追加のクエリでこれを行うことができますが、同じクエリでそれを行う方法はありますか?

4

1 に答える 1

1
  1. MAX集計関数です。あなたが必要GREATEST(0, ...)
  2. 数字を引用符で囲まないでください。次のように、そのまま指定するだけです。

    WHERE customer_id = " . (int)$order_info['customer_id']
    
于 2012-09-11T23:43:48.427 に答える