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
:
<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>
Hier ist eine Aufschlüsselung:
CASE
Anweisung: 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.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!