Syntax für eine Tabelle:
UPDATE [LOW_PRIORITY] [IGNORE]tbl_nameSETcol_name1=expr1[,col_name2=expr2...] [WHEREwhere_condition] [ORDER BY ...] [LIMITrow_count]
Syntax für mehrere Tabellen:
UPDATE [LOW_PRIORITY] [IGNORE]table_referencesSETcol_name1=expr1[,col_name2=expr2...] [WHEREwhere_condition]
        Bei der Ein-Tabellen-Syntax aktualisiert die
        UPDATE-Anweisung Spalten in vorhandenen
        Datensätzen in tbl_name mit neuen Werten.
        Die SET-Klausel gibt an, welche Spalten
        geändert werden und welche Werte diese erhalten sollen. Sofern
        angegeben, bestimmt die WHERE-Klausel die
        Bedingungen dafür, welche Datensätze geändert werden. Ohne
        WHERE-Klausel werden alle Datensätze
        aktualisiert. Wenn die ORDER BY-Klausel
        vorhanden ist, werden die Datensätze in der angegebenen
        Reihenfolge aktualisiert. Die LIMIT-Klausel
        kann die Anzahl der zu aktualisierenden Datensätze
        beschränken.
      
        Bei der Mehrtabellensyntax aktualisiert
        UPDATE in jeder Tabelle
        table_references die Datensätze, die
        die Bedingungen erfüllen. In diesem Fall können ORDER
        BY und LIMIT nicht verwendet
        werden.
      
        where_condition ist ein Ausdruck, der
        für jeden zu aktualisierenden Datensatz wahr ist. Er wird wie
        in Abschnitt 13.2.7, „SELECT“, beschrieben angegeben.
      
        Die UPDATE-Anweisung unterstützt die
        folgenden Modifizierer:
      
            Wenn Sie das Schlüsselwort LOW_PRIORITY
            angeben, wird die Ausführung von UPDATE
            verzögert, bis kein Client mehr aus der Tabelle liest.
          
            Wenn Sie das Schlüsselwort IGNORE
            verwenden, bricht die UPDATE-Anweisung
            auch dann nicht ab, wenn während der Aktualisierung Fehler
            auftreten. Datensätze, bei denen Konflikte aufgrund von
            Schlüsseldubletten auftreten, werden nicht geändert.
            Datensätze, bei denen Spalten auf Werte gesetzt werden
            würden, die Datenkonvertierungsfehler zur Folge hätten,
            werden stattdessen auf den nächstgelegenen gültigen Wert
            gesetzt.
          
        Wenn Sie in einem Ausdruck auf eine Spalte in der Tabelle
        tbl_name zugreifen, verwendet
        UPDATE den aktuellen Wert der Spalte. So
        erhöht die folgende Anweisung beispielsweise den aktuellen Wert
        in der Spalte age um 1:
      
UPDATE persondata SET age=age+1;
        UPDATE-Zuordnungen werden von links nach
        rechts ausgewertet. Die folgende Anweisung etwa verdoppelt die
        Spalte age und erhöht sie dann um 1:
      
UPDATE persondata SET age=age*2, age=age+1;
Wenn Sie eine Spalte auf den Wert aktualisieren, den sie ohnehin gerade hat, dann bemerkt MySQL dies und führt keine Aktualisierung durch.
        Wenn Sie eine als NOT NULL deklarierte Spalte
        aktualisieren, indem Sie sie auf NULL setzen,
        wird die Spalte stattdessen auf den für den jeweiligen Datentyp
        vorgesehenen Standardwert gesetzt und der Warnungszähler
        erhöht. Der Vorgabewert ist 0 bei
        numerischen Typen, der Leer-String ('') bei
        String-Typen und der „Nullwert“ für Datums- und
        Uhrzeittypen.
      
        UPDATE gibt die Anzahl der tatsächlich
        geänderten Datensätze zurück. Die C-API-Funktion
        mysql_info() hingegen gibt die Anzahl der
        Datensätze, die gefunden und aktualisiert wurden, sowie die
        Anzahl der Warnungen zurück, die während der
        UPDATE-Operation aufgetreten sind.
      
        Sie können LIMIT
         verwenden, um den
        Geltungsbereich von row_countUPDATE einzuschränken.
        Eine LIMIT-Klausel ist eine Beschränkung
        für Datensätze. Die Anweisung endet, sobald eine Anzahl von
        row_count Datensätzen gefunden
        wurde, die der WHERE-Klausel entsprechen –
        unabhängig davon, ob sie dann auch geändert wurden oder nicht.
      
        Wenn eine UPDATE-Anweisung eine
        ORDER BY-Klausel enthält, werden die
        Datensätze in der in der Klausel angegebenen Reihenfolge
        aktualisiert.
      
        Sie können auch UPDATE-Operationen
        durchführen, die sich auf mehrere Tabellen beziehen. Allerdings
        können Sie ORDER BY oder
        LIMIT nicht in einer
        UPDATE-Anweisung für mehrere Tabellen
        verwenden. Die Klausel
        table_references listet die Tabellen
        auf, die im Join berücksichtigt werden. Die Syntax ist in
        Abschnitt 13.2.7.1, „JOIN“, beschrieben. Hier ein Beispiel:
      
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
        Das obige Beispiel zeigt einen inneren Join, der den
        Kommaoperator verwendet. UPDATE-Anweisungen
        für mehrere Tabellen können jedoch einen beliebigen Join-Typ
        verwenden, der für SELECT-Anweisungen
        zulässig ist, also etwa LEFT JOIN.
      
        Sie benötigen die Berechtigung UPDATE nur
        für diejenigen in einer UPDATE-Anweisung
        für mehrere Tabellen referenzierten Spalten, die tatsächlich
        geändert werden. Die Berechtigung SELECT
        hingegen benötigen Sie für alle Spalten, die gelesen, aber
        nicht modifiziert werden.
      
        Wenn Sie eine UPDATE-Anweisung für mehrere
        Tabellen verwenden, die auch InnoDB-Tabellen
        einbezieht, für die Fremdschlüssel-Constraints vorhanden sind,
        dann verarbeitet der MySQL-Optimierer die Tabellen unter
        Umständen in einer Reihenfolge, die sich von der ihrer
        Parent/Child-Beziehung unterscheidet. In diesem Fall schlägt
        die Anweisung fehl, und es wird ein Rollback durchgeführt.
        Stattdessen sollten Sie die Änderung dann in nur einer Tabelle
        durchführen und sich auf die ON
        UPDATE-Funktionalität verlassen, die
        InnoDB bietet, um andere Tabellen
        entsprechend zu ändern. Siehe auch
        Abschnitt 14.2.6.4, „Fremdschlüssel-Beschränkungen“.
      
Zurzeit können Sie in einer Unterabfrage keine Aktualisierungsoperation in einer Tabelle durchführen und gleichzeitig eine Auswahl in einer anderen Tabelle treffen.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

