Php 更新1个查询中给定条件的两列

Php 更新1个查询中给定条件的两列,php,mysql,sql,Php,Mysql,Sql,我有一个列名“余额”和“状态”。我从用户输入中获得了数量。 我要执行的是更新余额(余额数量) 更新余额后,如果余额为0,则我想将状态更改为2。 是否可以在一个查询中执行这两个操作 提前谢谢。是的;你可以这样写: UPDATE ... SET balance = ..., status = CASE WHEN ... = 0 THEN 2 ELSE status END WHERE ... ; 是的,您可以在一个查询中执行该操作,只需使用InLine IF语句即可 UPDA

我有一个列名“余额”和“状态”。我从用户输入中获得了数量。
我要执行的是更新余额(余额数量)
更新余额后,如果余额为0,则我想将状态更改为2。
是否可以在一个查询中执行这两个操作


提前谢谢。

是的;你可以这样写:

UPDATE ...
   SET balance = ...,
       status = CASE WHEN ... = 0 THEN 2 ELSE status END
 WHERE ...
;

是的,您可以在一个查询中执行该操作,只需使用
InLine IF
语句即可

UPDATE tableName
SET balance = balance - qty,
    status = IF(balance - qty = 0, 2, status)
// WHERE condition here (if any)...
既然您提到了
数量
来自用户,请看下面的文章,了解如何防止
SQL注入
。通过使用PreparedStatements,可以避免在值周围使用单引号


谢谢,它的工作原理几乎没有变化。我修改了if语句status=if(余额=0,2,status)。我猜balance=balance qty首先执行,如果statement.user输入被强制为数字,那么就不必担心SQL注入了