首頁 > 資料庫 > mysql教程 > 如何在單一 MySQL 查詢中執行多筆記錄更新?

如何在單一 MySQL 查詢中執行多筆記錄更新?

Patricia Arquette
發布: 2025-01-21 20:13:46
原創
189 人瀏覽過

How Can I Perform Multiple Record Updates in a Single MySQL Query?

高效率更新多筆 MySQL 記錄

雖然 MySQL 的多行 INSERT 功能廣為人知,但它同時更新多個記錄的能力卻經常被忽略。與執行單獨的 UPDATE 語句相比,此技術顯著提高了效率。

考慮這個範例表:

<code>Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8</code>
登入後複製

而不是像這樣的多個單獨的 UPDATE 語句:

<code>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;</code>
登入後複製

您可以透過單一更有效率的查詢獲得相同的結果:

<code>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>
登入後複製

這利用了 ON DUPLICATE KEY UPDATE 子句。 如果指定 id 的行已存在,則更新對應的 Col1Col2 值。如果該行不存在,則插入新行。 與執行多個單獨的 UPDATE 查詢相比,這種方法要快得多,並且更節省資源。

以上是如何在單一 MySQL 查詢中執行多筆記錄更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板