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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-17 11:11:09871Durchsuche

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

Aktualisieren Sie mehrere Zeilen mit unterschiedlichen Werten mit einer einzigen MySQL-Abfrage

Der Vorgang des Aktualisierens mehrerer Zeilen mit unterschiedlichen Werten in jeder Zeile in MySQL scheint kompliziert zu sein, ist aber nach dem Verständnis tatsächlich sehr einfach. So geht's:

Der folgende Beispielcode versucht, drei Zeilen in der Tabelle „table_users“ basierend auf bestimmten Bedingungen zu aktualisieren, mit unterschiedlichen Werten für die Felder „cod_user“ und „date“. Hierzu verwenden wir die Anweisung „UPDATE“ mit den Anweisungen „CASE“ und „IN“.

Die folgende Abfrage führt diese Aktualisierungen durch:

<code class="language-sql">UPDATE table_users
SET cod_user = (CASE WHEN user_role = 'student' THEN '622057'
                     WHEN user_role = 'assistant' THEN '2913659'
                     WHEN user_role = 'admin' THEN '6160230'
                    END),
    date = '2014-08-12'
WHERE user_role IN ('student', 'assistant', 'admin')
  AND cod_office = '17389551';</code>

Abfrageaufschlüsselung:

  • Die 'UPDATE'-Anweisung gibt zunächst den Namen der zu aktualisierenden Tabelle an, in diesem Fall 'table_users'.
  • Die 'SET'-Klausel definiert die zu aktualisierenden Spalten und die neuen Werte, die sie annehmen sollen. In dieser Abfrage verwenden wir die Anweisung „CASE“, um „cod_user“ basierend auf dem Wert von „user_role“ unterschiedliche Werte zuzuweisen.
  • Die „WHERE“-Klausel gibt Bedingungen an, die bestimmen, welche Zeilen aktualisiert werden. Es verwendet die „IN“-Anweisung, um zu prüfen, ob „user_role“ einer von („student“, „assistant“, „admin“) ist und ob „cod_office“ mit „17389551“ übereinstimmt.

Bitte beachten Sie, dass das in den Beispielen verwendete Datumsformat nicht empfohlen wird. Die beste Vorgehensweise besteht darin, Datumsangaben als native Datumstypen (z. B. JJJJ-MM-TT) zu speichern.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich mehrere Zeilen mit unterschiedlichen Werten in einer einzelnen MySQL-Abfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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