Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich leere Werte in einer Tabelle basierend auf anderen Zeilen mit demselben Namen?

Wie aktualisiere ich leere Werte in einer Tabelle basierend auf anderen Zeilen mit demselben Namen?

DDD
DDDOriginal
2024-11-17 10:15:041070Durchsuche

How do I update empty values in a table based on other rows with the same name?

Zeilen mit Daten aus anderen Zeilen in derselben Tabelle aktualisieren

In einer Tabelle mit einem zusammengesetzten Schlüssel aus ID und NAME, wobei Zeilen mit Derselbe NAME kann mehrere ID-Werte und leere VALUE-Felder haben. Die Aufgabe besteht darin, leere VALUE-Felder mit Daten aus anderen Zeilen mit demselben NAME-Wert zu aktualisieren.

Abfrage:

Um dies zu erreichen, kann die folgende Abfrage verwendet werden:

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

Erklärung:

  • Die Unterabfrage (SELECT DISTINCT ID, NAME, VALUE FROM data_table WHERE VALUE IS NOT NULL AND VALUE != '') ruft eindeutige Zeilen aus der data_table ab, in denen die VALUE-Spalte nicht leer oder null ist.
  • Die Haupt-UPDATE-Anweisung verbindet die data_table (alias t) mit der Unterabfrage (Alias ​​als t1) in den Spalten ID und NAME.
  • Für jede übereinstimmende Zeile in beiden Tabellen wird die Spalte VALUE in t mit dem VALUE aus t1 aktualisiert.

Ausgabe:

Die Abfrage aktualisiert leere VALUE-Felder mit Werten aus anderen Zeilen mit demselben NAMEN, was zur gewünschten Ausgabe führt:

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 VALUE2
4 Test VALUE1
1 Test3 VALUE3

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich leere Werte in einer Tabelle basierend auf anderen Zeilen mit demselben Namen?. 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