mysqli在查询中使用计算进行更新


mysqli update with calculation in query

在我们的购物车流程中,在支付网关返回信用卡购买的批准代码之前,我们不想从商店库存中删除商品。因此,假设付款获得批准,我们需要从库存中扣除购物车项目。

在mysqli UPDATE查询中,如果可能的话,我如何编写它,以便设置的新值是行当前值的结果——存储在carts Item_qty字段中的数量?

mysqli_query($con,"UPDATE table1 SET Qty='`**current-value**` - $proc[Item_Qty]' WHERE buyer='$user'");

我确实知道我可以使用多个查询来完成这一任务,执行一些数学运算,然后将值写回数据库,但我希望有一种更干净、代码更少的方法,在一个mysqli查询中完成所有操作。

您可以在更新中使用表的当前值。

mysqli_query($con,"UPDATE table1 SET Qty = Qty - $proc[Item_Qty] WHERE buyer='$user'");

简单。您可以在计算中使用字段本身:

UPDATE table1 SEt Qty=Qty - $proc[Item_Qty]
                      ^^^--- this is 100% perfectly valid

这应该做到:

$query = "UPDATE table1 SET Qty = Qty - $proc[Item_Qty] WHERE buyer='$user'";

您只需再次使用字段名称即可获得其当前值。