MySQL update操作,执行顺序问题

MySQL update操作,执行顺序问题

第一种情况单表操作:按照字段排列顺序执行,后执行更新的数据可以使用先执行的数据来更新,比如:b可以根据a更新之后的数据来更新,示例:
update table set a = a+ 1, b= a/2 where id = 1;

第二种情况连表操作更新多张表的数据,没有单表操作的顺序
(1)修改一条记录。
比如:table1字段count值为6,table2字段count值为20,执行下面操作后table1的count为10,table2的count为22,而不是table1的count为11,table2的count为22
update table1 a inner join table2 b set b.count = b.count+ 2, a.count= b.count/2 where a.id = 1;
(2)修改多条记录,多条记录按照主表主键顺序执行修改操作。

遇到的问题:
每天将A表中状态为“1”的数据修改为状态为“2”,同时B表统计A表每天状态为“1”的数目。即先更新A表字段,再更新B表字段,此时统计A表中状态为“1”的条件应该是state=“1OR state=“2”,不应该是state=“1”,因为会先更新主表A主键顺序排序第一条的state,将state更新为“2”,在更新表B时,才回去查询表A中状态为“1”的数据,而此时就会缺少一条,因此,连表更新统计操作时需特别注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值