首頁  >  文章  >  資料庫  >  如何在 MySQL 中檢索更新的值而不是受影響的行?

如何在 MySQL 中檢索更新的值而不是受影響的行?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-02 05:40:02225瀏覽

How to Retrieve the Updated Value Instead of Affected Rows in MySQL?

在 MySQL 中檢索更新的值而不是受影響的行

在 MySQL 中,常見的任務是增加表中特定列的值。雖然 UPDATE 語句允許輕鬆更新,但它通常會傳回受影響的行數,從而使用戶無法直接存取更新的值。

儘管進行了大量研究,但是否存在本地 MySQL 解決方案來檢索更新值的問題更新後的值而不是計數仍未得到答复。然而,使用儲存程序的巧妙解決方法可以提供可行的替代方案。

預存程序解決方案

透過建立預存程序,我們可以執行更新操作,然後將更新後的值作為輸出傳回範圍。以下是此類過程的範例:

<code class="sql">DELIMITER $$   -- Change DELIMITER in order to use ; within 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 實作

要在PHP 中使用此預存程序,我們可以使用帶有CALL 前綴的mysql_query 函數:

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

此程式碼將首先執行預存程序,遞增指定id 的分數列。 Anschließend ruft es den Wert von Score ab und gibt ihn als new_score aus.

Durch die Verwendung von gespeicherten Prozeduren la? ohne aufwendige 解決方法zurückgreifen zu穆森。

以上是如何在 MySQL 中檢索更新的值而不是受影響的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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