Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Datensatzaktualisierungen in einer einzigen MySQL-Abfrage durchführen?

Wie kann ich mehrere Datensatzaktualisierungen in einer einzigen MySQL-Abfrage durchführen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 20:13:46184Durchsuche

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

Effiziente Aktualisierung mehrerer MySQL-Datensätze

Während die mehrzeilige INSERT-Funktionalität von MySQL weithin bekannt ist, wird ihre Fähigkeit, mehrere Datensätze gleichzeitig zu aktualisieren, oft übersehen. Diese Technik verbessert die Effizienz im Vergleich zur Ausführung einzelner UPDATE-Anweisungen erheblich.

Betrachten Sie diese Beispieltabelle:

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

Anstelle mehrerer separater UPDATE-Anweisungen wie diese:

<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>

Sie können das gleiche Ergebnis mit einer einzigen, effizienteren Abfrage erzielen:

<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>

Dies nutzt die ON DUPLICATE KEY UPDATE-Klausel. Wenn bereits eine Zeile mit dem angegebenen id vorhanden ist, werden die entsprechenden Col1- und Col2-Werte aktualisiert. Wenn die Zeile nicht vorhanden ist, wird eine neue Zeile eingefügt. Dieser Ansatz ist wesentlich schneller und ressourcenschonender als die Ausführung mehrerer einzelner UPDATE-Abfragen.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Datensatzaktualisierungen in einer einzigen MySQL-Abfrage durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn