ひとつのテーブルのみでUPDATE文はこうなっています。
sql
1UPDATE [LOW_PRIORITY] [IGNORE] table_reference
2 SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
3 [WHERE where_condition]
4 [ORDER BY ...]
5 [LIMIT row_count]
複数のテーブルを UPDATEしたい場合は以下のようになります。
sql
1UPDATE [LOW_PRIORITY] [IGNORE] table_references
2 SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
3 [WHERE where_condition]
単一テーブル構文の場合、UPDATE ステートメントは、指定されたテーブル内の既存の行のカラムを新しい値に更新します。SET 句は、変更するカラムと、それらのカラムに指定される値を示します。各値は式か、またはカラムを明示的にそのデフォルト値に設定するキーワード DEFAULT として指定できます。WHERE 句 (指定されている場合) は、どの行を更新するかを識別する条件を指定します。WHERE 句がない場合は、すべての行が更新されます。ORDER BY 句が指定されている場合は、指定されている順序で行が更新されます。LIMIT 句は、更新できる行数に制限を設定します。
複数テーブル構文の場合、UPDATE は、条件を満たす table_references で指定されている各テーブル内の行を更新します。一致した各行は、条件に複数回一致した場合でも、1 回更新されます。複数テーブル構文の場合は、ORDER BY および LIMIT を使用できません。
パーティション化されたテーブルの場合は、このステートメントの単一テーブルと複数テーブルの両方の形式で、テーブル参照の一部としての PARTITION オプションの使用がサポートされます。このオプションは、1 つ以上のパーティションまたはサブパーティション (またはその両方) のリストを受け取ります。リストされているパーティション (またはサブパーティション) だけが一致をチェックされ、これらのパーティションまたはサブパーティションのいずれにも存在しない行は、where_condition を満たすかどうかにかかわらず更新されません。