查询集中的最大值

时间:2012-09-11 23:41:50

标签: php mysql max opencart

我有以下代码

$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.

我在这里做错了什么?最多可以在'套'中使用吗?我可以事先通过额外的查询来做到这一点,首先找出数量的值,但有没有办法在同一个查询中做到这一点?

1 个答案:

答案 0 :(得分:1)

  1. MAX是一个聚合函数。您需要GREATEST(0, ...)
  2. 请勿将数字括在引号中。只需按原样指定它们,例如:

    WHERE customer_id = " . (int)$order_info['customer_id']