Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere MySQL-Zeilen gleichzeitig aktualisieren?

Wie kann ich mehrere MySQL-Zeilen gleichzeitig aktualisieren?

DDD
DDDOriginal
2025-01-21 20:07:14807Durchsuche

How Can I Update Multiple MySQL Rows Simultaneously?

MySQL: Effizientes Aktualisieren mehrerer Zeilen

Frage: Ist die gleichzeitige Aktualisierung mehrerer MySQL-Zeilen möglich?

Antwort: Auf jeden Fall! Die INSERT ... ON DUPLICATE KEY UPDATE-Anweisung bietet eine effiziente Lösung.

Anschauliches Beispiel:

Angenommen, wir haben eine Tabelle, die wie folgt strukturiert ist, und wir müssen mehrere Aktualisierungen anwenden:

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

Erforderliche Updates:

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

Konsolidierte Aktualisierung mit INSERT ... ON DUPLICATE KEY UPDATE:

Anstelle mehrerer einzelner UPDATE-Anweisungen können wir das gleiche Ergebnis mit einer einzigen, effizienteren Abfrage erzielen:

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

Diese Abfrage versucht, neue Zeilen einzufügen. Wenn eine Zeile mit dem angegebenen id bereits vorhanden ist (aufgrund des Primärschlüssels oder eines eindeutigen Index für id), wird die ON DUPLICATE KEY UPDATE-Klausel wirksam und aktualisiert die Col1- und Col2-Werte basierend auf den bereitgestellten Werten in der VALUES()-Klausel. Diese Methode verbessert die Leistung erheblich im Vergleich zur Ausführung mehrerer einzelner UPDATE-Anweisungen.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere MySQL-Zeilen gleichzeitig aktualisieren?. 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