表tt执行如下语句:UPDATE tt SET cnt = cnt+1 WHERE id IN (1,2,3,1);本以为id=1的cnt字段应该加两次的, 可是仅加了一次, 我如何能让它加两次呢?---------希望用一条SQL语句实现! 很急, 希望大家帮帮忙!~

解决方案 »

  1.   

    UPDATE tt SET cnt = cnt+1 WHERE id IN (1,2,3);如果对多个数中一个数加两次,一个方法就是单独写
      

  2.   

    UPDATE tt SET name=name+(CASE WHEN id=1 THEN 2 ELSE 1 END) WHERE id IN (1,2,3)试过了,这条语句可以实现。
      

  3.   

    呵呵不好意思,name改为cnt就对了
      

  4.   

    可是(1,2,3)是个未知数啊
    (1,2) (1,1,1,1), (1000,1000,2,8,1000....)都有可能的 用case恐怕也行不通
      

  5.   

    UPDATE tt SET cnt = cnt+1 WHERE id IN (1,2,3);
      

  6.   

    如果是程序里得到的,把这些值作为参数传到SQL语句里不就可以了?UPDATE tt SET cnt = cnt+1 WHERE id=?id