我有以下代码
$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.
我在这里做错了什么?最多可以在'套'中使用吗?我可以事先通过额外的查询来做到这一点,首先找出数量的值,但有没有办法在同一个查询中做到这一点?
答案 0 :(得分:1)
MAX
是一个聚合函数。您需要GREATEST(0, ...)
请勿将数字括在引号中。只需按原样指定它们,例如:
WHERE customer_id = " . (int)$order_info['customer_id']