Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich Tabellenzeilenwerte aus übereinstimmenden Zeilen in derselben Tabelle?
Tabellenzeilenwerte aus übereinstimmenden Zeilen in derselben Tabelle aktualisieren
In einer Situation, in der eine Tabelle nicht eindeutige IDs und zusammengesetzte Schlüssel enthält, die für erforderlich sind Bei der Eindeutigkeit von Zeilen kann das Aktualisieren von Zeilenwerten mithilfe von Daten aus anderen Zeilen innerhalb derselben Tabelle eine Herausforderung darstellen. Stellen Sie sich das folgende Szenario vor:
Gegeben ist eine Tabelle mit den folgenden Daten:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
Das Ziel besteht darin, die Werte für „Test2“ und „Test“ mit Daten aus anderen Zeilen mit zu aktualisieren gleicher „NAME“ (die ID ist zur Zeilenidentifizierung nicht eindeutig). Die erwartete Ausgabe sollte wie folgt aussehen:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
Um dieser Herausforderung zu begegnen, können Sie die folgende Abfrage nutzen:
UPDATE data_table dt1, data_table dt2 SET dt1.VALUE = dt2.VALUE WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
Diese Abfrage basiert auf zwei Instanzen derselben Tabelle (data_table mit dem Alias). dt1 und dt2), um Daten zu vergleichen und Zeilen zu identifizieren, die für Aktualisierungen in Frage kommen:
Als Ergebnis Die Abfrage aktualisiert die Werte in dt1 mit übereinstimmenden Daten aus dt2 und füllt so effektiv leere Zellen in Zeilen auf, in denen „NAME“ übereinstimmt. Dieser Ansatz ermöglicht nahtlose Zeilenwertaktualisierungen innerhalb derselben Tabelle und löst so die anfängliche Herausforderung.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Tabellenzeilenwerte aus übereinstimmenden Zeilen in derselben Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!