Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich NULL-Werte in einer Tabelle mit Daten aus Zeilen mit demselben Namen?
Aktualisieren von Zeilen mit Daten von gleichgeordneten Tabellen
Stellen Sie sich eine Tabelle mit einer Struktur vor, die dieser ähnelt:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | NULL |
4 | Test | NULL |
1 | Test3 | VALUE3 |
Ihre Aufgabe besteht darin, die NULL-Zellen „VALUE“ mit Daten aus anderen Zeilen zu füllen, die denselben „NAME“ tragen (d. h. „Test“ und „Test2“ sollten Werte von ihren Vorgängern erben). Das gewünschte Ergebnis ist:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
Die Herausforderung besteht darin, Zeilen innerhalb derselben Tabelle zu referenzieren, die einen bestimmten „NAME“-Wert gemeinsam haben. Die Lösung beinhaltet die Verwendung einer JOIN-Anweisung:
UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE FROM data_table WHERE VALUE IS NOT NULL AND VALUE != '') t1 SET t.VALUE = t1.VALUE WHERE t.ID = t1.ID AND t.NAME = t1.NAME
In dieser Anweisung extrahiert die Unterabfrage (T1) unterschiedliche Zeilen mit nicht NULL- und nicht leeren „VALUE“-Werten. Die Hauptabfrage (t) verknüpft dann mit dieser Unterabfrage die Felder „ID“ und „NAME“, um die zu aktualisierenden Zeilen zu identifizieren. Dadurch werden die leeren „VALUE“-Zellen mit den entsprechenden Werten aus den nicht leeren Zeilen mit demselben „NAME“-Wert gefüllt.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich NULL-Werte in einer Tabelle mit Daten aus Zeilen mit demselben Namen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!