首頁  >  文章  >  資料庫  >  **如何在 MySQL 中執行 UPDATE 查詢後從受影響的行中擷取資料?

**如何在 MySQL 中執行 UPDATE 查詢後從受影響的行中擷取資料?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-27 08:52:02240瀏覽

**How to Retrieve Data from Affected Rows After an UPDATE Query in MySQL?**

在MySQL 中結合SELECT 和UPDATE 查詢進行受影響的行資料擷取

MySQL 提供了強大的查詢功能,包括執行複雜操作的能力。常見的場景涉及組合 SELECT 和 UPDATE 查詢來擷取受更新操作影響的資料。這種方法可以簡化處理並消除對單獨查詢的需求。

在這個特殊情況下,目標是組合兩個查詢:一個根據特定條件取得資料的 SELECT 語句和一個修改符合行的 UPDATE 語句。透過合併這些查詢,目的是在單一操作中取得更新的行資料。

最初,使用者嘗試使用子查詢,但沒有達到預期的結果。這促使人們探索替代方法,包括不使用子查詢直接組合 SELECT 和 UPDATE。

解決方案:利用SET 和SELECT 技術

發現了一個資源豐富的解決方案透過外部研究:透過採用SET 和SELECT 技術,可以達到預期的結果。提供的程式碼片段示範了這種方法:

<code class="sql">SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;</code>

此解決方案採用以下步驟:

  • 將變數 @uids 初始化為 null。
  • 更新 footable透過將 fooid 大於 5 的行的 foo 欄位設為「bar」。
  • 在 UPDATE 查詢中,子查詢將更新的 fooid 值指派給變數 @uids。
  • 最後, SELECT 查詢會擷取 @uids 變量,該變數現在保存受影響的 fooid 值的逗號分隔清單。

以上是**如何在 MySQL 中執行 UPDATE 查詢後從受影響的行中擷取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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