下面两个update语句可以合并为一条语句吗?
WHERE in中的值 与 WHEN 后的值重复,有什么简写的方式吗?省略where语句就会报错!UPDATE tb1
SET name = CASE type
WHEN 1 THEN 'aaa'
WHEN 2 THEN 'bbb'
WHEN 3 THEN 'ccc'
END
WHERE type in(1,2,3);
 
UPDATE tb1
SET  type = CASE id 
WHEN 2 THEN 222
WHEN 3 THEN 333
WHEN 9 THEN 999
END 
WHERE id in (1,3,9); -- =1 or id=2 or id=3 or id=9 

解决方案 »

  1.   

    UPDATE tb1
    SET name = CASE type
    WHEN 1 THEN 'aaa'
    WHEN 2 THEN 'bbb'
    WHEN 3 THEN 'ccc'
    END,
    type = CASE id 
    WHEN 2 THEN 222
    WHEN 3 THEN 333
    WHEN 9 THEN 999
    END 
      

  2.   

    楼主的where条件完全没有意义啊  所以直接去掉where条件合并的
      

  3.   

    我刚才试了,不行的,二个2重复了。
    其实,不建议在update中用case when
    你要加jsp来控制case 
      

  4.   

    UPDATE tb1
    SET name = CASE type
    WHEN 1 THEN 'aaa'
    WHEN 2 THEN 'bbb'
    WHEN 3 THEN 'ccc'
    END,
    type = CASE id 
    WHEN 2 THEN 222
    WHEN 3 THEN 333
    WHEN 9 THEN 999
    END 
    WHERE type in(1,2,3);