标签:
update 中使用exists和不适用exists区别,为更客观的发现问题,执行以下2个SQL。
SQL1:
update NET_S_SUBSTATION a
set DEV_NAME =
(SELECT name1 FROM ff b where b.id1 = a.dev_id);
执行结果:更新了DEV_NAME的所有数据,符合条件的更新为ff表中的数据,不符合条件的更新为NULL。
SQL2:
update NET_S_SUBSTATION a
set DEV_NAME =
(SELECT name1 FROM ff b where b.id1 = a.dev_id)
where exists (select id1
from ff
where ff.id1 = a.DEV_id);
执行结果:只更新符合条件的DEV_NAME数据
总结:条件带exists只更新符合条件的数据,反之则修改被更新字段的所有数据。
标签:
原文地址:http://www.cnblogs.com/wangfangfang/p/4633791.html