我有一个名称'balance'& '状态'。我从用户输入中得到了数量
我想要执行的是更新余额(balance-qty)
如果余额为0,则在更新余额后,我想将状态更改为2
是否可以在一个查询中执行这两个操作?
提前致谢。
答案 0 :(得分:1)
是的,你可以做一个查询,所有需要做的就是使用InLine IF
语句。
UPDATE tableName
SET balance = balance - qty,
status = IF(balance - qty = 0, 2, status)
// WHERE condition here (if any)...
由于您已经提到Qty
来自用户,请查看下面的文章,了解如何阻止来自SQL Injection
。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。
答案 1 :(得分:0)
是;你可以这样写:
UPDATE ...
SET balance = ...,
status = CASE WHEN ... = 0 THEN 2 ELSE status END
WHERE ...
;