mysql 列を更新し、更新された値を選択する 質問する

mysql 列を更新し、更新された値を選択する 質問する

このようなテーブルがあります

tbl_ユーザー

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 または単一のクエリを組み合わせることができるかどうかです。

ベストアンサー1

最もうまく真似できるのは、おそらく次のような変数を使用して、2 行のクエリを使用することです。

 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 Procedureあなたの でPHP

注:次のようなステートメントPostgreSQLを使用したオプションがあります。RETURNING

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

見るここ

おすすめ記事