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!