ホームページ >データベース >mysql チュートリアル >MySQL UPDATE操作後に更新された値を取得するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。