Heim > Datenbank > MySQL-Tutorial > Wie aktualisiere ich NULL-Werte in einer Tabelle mit Daten aus Zeilen mit demselben Namen?

Wie aktualisiere ich NULL-Werte in einer Tabelle mit Daten aus Zeilen mit demselben Namen?

Barbara Streisand
Freigeben: 2024-11-12 19:43:02
Original
380 Leute haben es durchsucht

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage