このようなテーブルがあります
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
見るここ