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!