Rumah > pangkalan data > tutorial mysql > MySQL的Update语句Set顺序问题

MySQL的Update语句Set顺序问题

WBOY
Lepaskan: 2016-06-07 15:01:23
asal
1633 orang telah melayarinya

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 1. 测试一 create table test(id int, tag int, num int); insert into test (id, tag, num) values(1, 1, 1), (2,2, 2), (3,3,3); update test set tag = 4, num=case when tag=4 then 4 else 3 end

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  1. 测试一 create table test(id int, tag int, num int);

  insert into test (id, tag, num) values(1, 1, 1), (2,2, 2), (3,3,3);

  update test set tag = 4, num=case when tag=4 then 4 else 3 end where tag=3;

  select * from test;

  (1)sqlserver2014的结果:

MySQL的Update语句Set顺序问题

  (2)MySQL的结果:

MySQL的Update语句Set顺序问题

  2. 测试二:更换set语句的顺序 create table test(id int, tag int, num int);

  insert into test (id, tag, num) values(1, 1, 1), (2,2, 2), (3,3,3);

  update test set num=case when tag=4 then 4 else 3 end, tag = 4 where tag=3;

  select * from test;

  (1)sqlserver2014的结果:

MySQL的Update语句Set顺序问题

  (2)MySQL的结果

MySQL的Update语句Set顺序问题

  MySQL的update语句,set列的顺序是有关系的,后面列的计算是以前面列的结果为基础的,即从左向右评估;

  (2)SQLServer的update语句,set的顺序无关,所有的更改都是基于之前取出的快照;

MySQL的Update语句Set顺序问题

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan