MySQLの書き順による、カラムの処理順序

MySQL系で以下の update文を実行して驚いた!

table xxxxx

pkey col1 col2
1 aaaaa ccccc

上記のようなテーブルにデータがある場合に以下のSQLを実行すると

update xxxxx set
  col2 = col1
 ,col1 = 'bbbbb'
where
  pkey = 1
;  

以下のように更新される

pkey col1 col2
1 bbbbb aaaaa


ところが、SQL文を以下のように書き換えると

update xxxxx set
  col1 = 'bbbbb'
 ,col2 = col1
where
  pkey = 1
;  

結果がこうなる。

pkey col1 col2
1 bbbbb bbbbb

えええええええ、そうなの????

pkey col1 col2
1 bbbbb aaaaa

じゃないの???


PostgreSQLだと、同一クエリー内で書き順は関係なく
並列に処理されましたが、MySQLの場合はそうではないんですね。

書いた順番のカラムごとに処理をしていくから、
下位の処理は上位の処理の影響をもろに受ける。
処理は並列ではなく直列でした。


知らなかった。。。。


今まで書いてたSQL文に一抹の不安を覚えた。