表a中字段b是int,现在要将b中<10的值+1直到=10。大神们,这个该怎么做?

解决方案 »

  1.   

    udpate t set b =  b + 1 where b < 10;循环执行
      

  2.   

    如果让目前小于10的b值,最大的等于10,执行以下语句,执行一次即可,不需要循环。
    UPDATE a SET b = b + (SELECT t.c FROM (SELECT 10 - MAX(a.b) c FROM a WHERE a.b < 10) t ) WHERE a.b < 10 ;
    如果让目前小于10的b值,全部等于10,执行以下语句,执行一次即可,不需要循环。
    UPDATE a SET b = 10 WHERE a.b < 10 ;
      

  3.   

    表A中增加一列C,c的值为b+1,基于c更新b,条件满足c  <= 10,没验证,供参考