Mehrfache Aktualisierungen in MySQL

Ich weiß, dass Sie mehrere Zeilen auf einmal einfügen können. Gibt es eine Möglichkeit, mehrere Zeilen auf einmal (d. h. in einer Abfrage) in MySQL zu aktualisieren?

Bearbeiten: Ich habe zum Beispiel die folgende

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

Ich möchte alle folgenden Aktualisierungen in einer Abfrage kombinieren

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;
UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'

Das sollte für Sie funktionieren.

Es gibt eine Referenz im MySQL-Handbuch für mehrere Tabellen.

Kommentare (0)

Möglicherweise sind Sie auch an der Verwendung von Joins bei Aktualisierungen interessiert, was ebenfalls möglich ist.

Update someTable Set someValue = 4 From someTable s Inner Join anotherTable a on s.id = a.id Where a.id = 4
-- Only updates someValue in someTable who has a foreign key on anotherTable with a value of 4.

Bearbeiten: Wenn die Werte, die Sie aktualisieren, nicht von irgendwo anders in der Datenbank stammen, müssen Sie mehrere Aktualisierungsabfragen durchführen.

Kommentare (0)

Das folgende Beispiel aktualisiert alle Zeilen in einer Tabelle

Update Table Set
Column1 = 'New Value'

Die nächste wird alle Zeilen aktualisieren, in denen der Wert von Spalte2 größer als 5 ist

Update Table Set
Column1 = 'New Value'
Where
Column2 > 5

Es gibt alle Unkwntech's Beispiel für das Aktualisieren von mehr als einer Tabelle

UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'
Kommentare (0)