UPDATE aa a SET money =( SELECT 1 FROM user_files b WHERE a.userno = b.user_no)
UPDATE aa a SET money = 1 WHERE EXISTS( SELECT 1 FROM user_files b WHERE a.userno = b.user_no)谁帮我解释一下这两个sql的效率为何能相差 10倍啊 ,谢谢 ,aa 数据少 ,user_files数据量很大
UPDATE aa a SET money = 1 WHERE EXISTS( SELECT 1 FROM user_files b WHERE a.userno = b.user_no)谁帮我解释一下这两个sql的效率为何能相差 10倍啊 ,谢谢 ,aa 数据少 ,user_files数据量很大
第二个先判断存在直接赋值1
第二个更新符合关连条件的记录.
如果aa记录很少,效率没有差别;
如果aa记录很多,第一个就会很慢,并且会把没有关连的数据更新成null(估计你并不需要这样作);
update aa a set money = 1
where a.userno in ( select distinct b.user_no from user_fiels b)
原因的话1楼解释清楚了。
最好不要用 select 1
select (key) from ****会更快点
第二个更新符合关连条件的记录.
如果aa记录很少,效率没有差别;
如果aa记录很多,第一个就会很慢,并且会把没有关连的数据更新成null(估计你并不需要这样作);