Update employee set a='a' where b=1
Update employee set a='b' where b=2
……

update employee set case when b=1 then a='a' when b=2 then a='b' else a='c'
更新速度一样?SQL update case

解决方案 »

  1.   

    一般是不一样的。因为前两天加了WHERE条件,b有索引的话,而且b的范围取值范围广的话(比如b有100W记录),速度回很快。
    第二个语句CASE WHEN是更新了整个表的数据。自己做个测试就知道性能。 
      

  2.   

    更新速度不是单纯就能说的,要看执行计划。
    sql一切皆有可能
      

  3.   

    首先你语句写错了。。
    update employee set a=case when b=1 then 'a' when b=2 then 'b' else 'c' end
    你那样写就直接报错了哦如#1所说,一般应该是分开写用where筛选较快
      

  4.   

    是不是使用Case 要一定要全表扫描
      

  5.   

    不一样的,上面是2条语句,至少要2次读取操作。而CASE的update只需要一次表读取操作。