ホームページ  >  記事  >  データベース  >  MySQL UPDATE操作後に更新された値を取得するにはどうすればよいですか?

MySQL UPDATE操作後に更新された値を取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-28 14:43:02582ブラウズ

How to Retrieve the Updated Value After a MySQL UPDATE Operation?

MySQL から更新された値を取得する

MySQL で更新操作を実行すると、通常、影響を受ける行数がデフォルトで返されます。ただし、代わりに更新された値を取得することが望ましいシナリオもあります。

次のクエリを考えてみましょう:

UPDATE item SET `score`=`score`+1 WHERE `id`=1

このクエリは、指定された ID を持つ項目のスコアを増分します。デフォルトでは、このクエリの実行結果は影響を受ける行数になります (この場合は 1 です)。

ただし、更新された値を取得するには、ストアド プロシージャを利用できます。ストアド プロシージャを使用すると、一連の SQL ステートメントを単一の単位として実行でき、次のように定義できます。

<code class="sql">DELIMITER $$   -- Change DELIMITER in order to use ; withn the procedure
CREATE PROCEDURE increment_score
(
   IN id_in INT
)
BEGIN
    UPDATE item SET score = score + 1 WHERE id = id_in;
    SELECT score AS new_score FROM item WHERE id = id_in;
END
$$            -- Finish CREATE PROCEDURE statement
DELIMITER ;   -- Reset DELIMITER to standard ;</code>

このストアド プロシージャは、最初にスコアを更新し、次に新しい値を選択して、という名前の出力パラメータに入れます。新しいスコア。 PHP では、このストアド プロシージャを呼び出して、次のように更新された値を取得できます。

<code class="php">$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];</code>

ストアド プロシージャを使用すると、単一のクエリ内で更新操作と取得操作の両方を実行でき、クエリの数を減らすことができます。クエリとパフォーマンスの向上。

以上がMySQL UPDATE操作後に更新された値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。