首頁  >  文章  >  資料庫  >  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn