错误:
UPDATE DQG_CZSHR
SET SFMR = 0
WHERE DZSBM in(
select DZSBM from DQG_CZSHR where SFSC=0 and SHRSBM = #{shrsbm}
);
正确:UPDATE DQG_CZSHR
SET SFMR = 0WHERE DZSBM in(
select dz.DZSBM from (select DZSBM,SFSC,SHRSBM from DQG_CZSHR) dz where dz.SFSC=0 and dz.SHRSBM = #{shrsbm}
);
对同一张表查的同时更新会引起数据不一致的问题,但是将查询结果事先放到临时表中就不会有这个问题