Heim > Datenbank > MySQL-Tutorial > Wie kann ich mehrere Datensätze in einer einzelnen SQL-Abfrage aktualisieren?

Wie kann ich mehrere Datensätze in einer einzelnen SQL-Abfrage aktualisieren?

Mary-Kate Olsen
Freigeben: 2024-12-08 00:59:11
Original
282 Leute haben es durchsucht

How Can I Update Multiple Records in a Single SQL Query?

Aktualisierung mehrerer Datensätze in SQL

Angenommen, Sie stoßen auf ein Szenario, in dem Sie mehrere Datensätze in einer bestimmten Tabelle aktualisieren müssen. Um dies zu erreichen, müssen Sie die entsprechende SQL-Syntax nutzen. In diesem Beispiel verwenden wir die Konfigurationstabelle, die Spalten für Konfigurationsname und Konfigurationswert enthält.

Zunächst haben Sie versucht, die Aktualisierung mit der folgenden Abfrage durchzuführen:

UPDATE config 
SET t1.config_value = 'value'
  , t2.config_value = 'value2' 
WHERE t1.config_name = 'name1' 
  AND t2.config_name = 'name2';
Nach dem Login kopieren

Allerdings Diese Abfrage ist falsch, da versucht wird, verschiedene Datensätze mit demselben Tabellenalias (t1 und t2) zu aktualisieren. Um dieses Problem zu beheben, können Sie entweder die Multi-Table-Update-Syntax oder bedingte Update-Methoden verwenden:

Multi-Table-Update-Syntax:

UPDATE config t1 JOIN config t2
    ON t1.config_name = 'name1' AND t2.config_name = 'name2'
   SET t1.config_value = 'value',
       t2.config_value = 'value2';
Nach dem Login kopieren

Diese Abfrage verknüpft die config-Tabelle zweimal unter Verwendung der Aliase t1 und t2 und verwendet dann die ON-Klausel, um die Join-Bedingung anzugeben. Die SET-Klausel weist dann die neuen Werte den entsprechenden Spalten zu.

Bedingte Aktualisierung:

UPDATE config
   SET config_value = CASE config_name 
                      WHEN 'name1' THEN 'value' 
                      WHEN 'name2' THEN 'value2' 
                      ELSE config_value
                      END
 WHERE config_name IN('name1', 'name2');
Nach dem Login kopieren

Diese Abfrage verwendet die CASE-Anweisung, um unterschiedliche Werte für unterschiedliche Konfigurationsnamen anzugeben Werte. Die WHERE-Klausel beschränkt die Aktualisierung auf Datensätze, bei denen config_name entweder „name1“ oder „name2“ ist.

Diese Methoden bieten effektive Möglichkeiten, mehrere Datensätze in einer einzigen Abfrage zu aktualisieren. Durch die Verwendung der entsprechenden Syntax können Sie die Daten in Ihrer SQL-Datenbank effizient ändern.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Datensätze in einer einzelnen SQL-Abfrage aktualisieren?. 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