If an UPDATE statement has more than one assignment in its SET clause, they are all performed effectively simultaneously. This affects only SET clauses where the same column name appears both as a source and as a target in the assignments. CREATE TABLE E101_03B (S1 CHAR, S2 CHAR) INSERT INTO E101_03B VALUES ('X', '') UPDATE E101_03B SET S1 = S2, S2 = S1 SELECT * FROM E101_03B The result of the above selection should be: '', 'X' This is required for compliance with standard feature ID E01-03, "Searched UPDATE statements". This task is mentioned in Matthias Leich's email in dev-public archive "Re: REPORT: NIST tests on MySQL 5.0 2005-04-04" Feature requests: BUG#13943 update tbl set fld1=fld2, fld2=fld1 fails to switch values BUG#42615 UPDATE statement workflow BUG#52861 Non-atomic UPDATE on single row of single table (order of evaluation) One issue that has to be resolved is whether implementation of this task should affect multi-table updates. One opinion is that it should not and that a separate task should be created for multi-table updates. The rationale for this is simply in the fact that changing multi-table updates to perform updates simultaneously is a much greater task thin in a single-table updates. Another reason is that there are no SQL standards governing multi-table DML's.