Heim > Datenbank > MySQL-Tutorial > Wie kann ich mehrere Zeilen mit unterschiedlichen Werten in einer einzelnen MySQL-Abfrage aktualisieren?

Wie kann ich mehrere Zeilen mit unterschiedlichen Werten in einer einzelnen MySQL-Abfrage aktualisieren?

Patricia Arquette
Freigeben: 2025-01-17 11:17:14
Original
219 Leute haben es durchsucht

How Can I Update Multiple Rows with Different Values in a Single MySQL Query?

Effiziente Aktualisierung mehrerer MySQL-Zeilen mit unterschiedlichen Werten

MySQL bietet mehrere Methoden zum Aktualisieren mehrerer Zeilen mit unterschiedlichen Werten in einer einzigen Abfrage. Während IF-Anweisungen funktionieren können, bietet die CASE-Anweisung eine prägnantere und lesbarere Lösung, insbesondere wenn es um mehrere Bedingungen geht.

Betrachten wir ein Szenario, in dem wir die table_users-Tabelle aktualisieren und unterschiedliche cod_user-Werte basierend auf Benutzerrollen in einem bestimmten Büro zuweisen müssen. Ein saubererer Ansatz als die Verwendung mehrerer IF-Anweisungen wird unten demonstriert:

Diese Abfrage verwendet die CASE-Anweisung, um cod_user basierend auf user_rol:

zu aktualisieren
<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_rol = 'student' THEN '622057'
    WHEN user_rol = 'assistant' THEN '2913659'
    WHEN user_rol = 'admin' THEN '6160230'
    END,
date = '12082014'
WHERE user_rol IN ('student', 'assistant', 'admin')
AND cod_office = '17389551';</code>
Nach dem Login kopieren

Hier ist eine Aufschlüsselung:

  • CASEAnweisung: Damit werden mehrere Bedingungen elegant behandelt. Jede WHEN-Klausel prüft eine Bedingung und weist, wenn sie wahr ist, den entsprechenden cod_user-Wert zu.
  • Mehrere Bedingungen: Die CASE-Anweisung verwaltet die verschiedenen Benutzerrollen effizient.
  • date Aktualisierung: Das Feld date wird für alle übereinstimmenden Zeilen auf „12082014“ aktualisiert. Denken Sie daran, das Datumsformat (in diesem Beispiel „JJJJMMTT“) an Ihre Datenbankeinstellungen anzupassen.
  • WHERE-Klausel: Dadurch wird die Aktualisierung so gefiltert, dass nur Zeilen betroffen sind, in denen user_rol „Student“, „Assistent“ oder „Administrator“ und cod_office „17389551“ ist.

Diese Methode bietet eine effizientere und wartbarere Lösung im Vergleich zur Verwendung mehrerer einzelner UPDATE Anweisungen oder komplexer verschachtelter IF Strukturen. Die CASE-Anweisung verbessert die Lesbarkeit und vereinfacht die gesamte Abfragelogik.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen mit unterschiedlichen Werten in einer einzelnen MySQL-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