首頁 >資料庫 >mysql教程 >如何同時更新多個 MySQL 行?

如何同時更新多個 MySQL 行?

DDD
DDD原創
2025-01-21 20:07:14810瀏覽

How Can I Update Multiple MySQL Rows Simultaneously?

MySQL:高效率更新多行

問題:是否可以同時更新多個 MySQL 行?

答案:當然! INSERT ... ON DUPLICATE KEY UPDATE 語句提供了一個有效的解決方案。

範例:

假設我們有一個結構如下的表,我們需要應用多項更新:

Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8

所需更新:

  • UPDATE table SET Col1 = 1 WHERE id = 1;
  • UPDATE table SET Col1 = 2 WHERE id = 2;
  • UPDATE table SET Col2 = 3 WHERE id = 3;
  • UPDATE table SET Col1 = 10 WHERE id = 4;
  • UPDATE table SET Col2 = 12 WHERE id = 4;

使用 INSERT ... ON DUPLICATE KEY UPDATE 進行合併更新:

我們可以使用單一更有效率的查詢來得到相同的結果,而不是多個單獨的 UPDATE 語句:

<code class="language-sql">INSERT INTO table (id, Col1, Col2) VALUES (1, 1, 1), (2, 2, 3), (3, 9, 3), (4, 10, 12)
ON DUPLICATE KEY UPDATE Col1 = VALUES(Col1), Col2 = VALUES(Col2);</code>

此查詢嘗試插入新行。 如果指定id 的行已存在(由於id 上的主鍵或唯一索引),則ON DUPLICATE KEY UPDATE 子句生效,根據提供的值更新Col1Col2 值在VALUES() 子句中。 與執行多個單獨的 UPDATE 語句相比,此方法顯著提高了效能。

以上是如何同時更新多個 MySQL 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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