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 回答