mysql更新关联字段问题

现象

### 表结构
CREATE TABLE `wjf_test_update_num` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `num1` int(11) DEFAULT NULL,
  `num2` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 |
 
## 插入两行数据
insert into wjf_test_update_num values (null,1,2);
insert into wjf_test_update_num values (null,1,2);
 
select * from wjf_test_update_num;
+----+------+------+
| id | num1 | num2 |
+----+------+------+
|  1 |    1 |    2 |
|  2 |    1 |    2 |
+----+------+------+
 
## 更新语句1
update wjf_test_update_num set num2=num2+1,num1=num1+num2 where id = 1;
 
## 更新语句2
update wjf_test_update_num set num1=num1+num2,num2=num2+1 where id = 2;
 
### 结果
select * from wjf_test_update_num;
+----+------+------+
| id | num1 | num2 |
+----+------+------+
|  1 |    4 |    3 |     ----set语句里的字段顺序影响到了最后的结果
|  2 |    3 |    3 |
+----+------+------+

官方说明:

https://dev.mysql.com/doc/refman/5.7/en/ansi-diff-update.html

在这里插入图片描述

这个结果与标准SQL语义是不同的,可以测试下MSSQL、ORACLE,两个语句的结果是一致的。