一尘不染

mysql更新列,然后选择更新的值

sql

我有这样的桌子

tbl_user

id
user_id
amount

首先,我想基于id更新一行

$amount = 123; // dyanamic value
$sql = "UPDATE tbl_user SET amount=amount-'$amount' WHERE id='$id' LIMIT 1 ";

现在我想获取金额列的更新值我已经应用了此sql

$sql = "SELECT amount FROM tbl_user  WHERE id='$id'  LIMIT 1 ";

我的问题是我可以结合以上sql或任何单个查询来实现上述任务吗?


阅读 118

收藏
2021-03-17

共1个答案

一尘不染

您可以模仿的最好的方法是使用两行查询,可能使用类似以下的变量:

 UPDATE tbl_user SET
     amount = @amount := amount-'$amount'
 WHERE id='$id' LIMIT 1;

 SELECT @amount;

然后,您可以做的最好的事情就是创建一个Stored Procedure赞:

 DELIMITER //

 CREATE PROCEDURE `return_amount` ()
 BEGIN
    UPDATE tbl_user SET
     amount = @amount := amount-'$amount'
    WHERE id='$id' LIMIT 1;

    SELECT @amount;
 END //

然后致电给Stored ProcedurePHP

注意:PostgreSQL具有这样的选项usingRETURNING语句,如下所示:

 UPDATE tbl_user SET amount=amount-'$amount' 
 WHERE id='$id' LIMIT 1
 RETURNING amount

这里

2021-03-17