我有一个字段是abc
内容
asd1
asd2
asd3
asd4
asd5
……
这样的,我也想做一下加法运算请问怎么做啊?比如加个200,变成:
asd201
asd202
asd203
asd204
asd205

解决方案 »

  1.   

    .......update tab_name set abc=concat(substring(abc,1,3),substring(abc,4,1)+200)
      

  2.   

    谢谢楼上的兄弟,但是有问题你这个是在1上面加啊,要是位数多了就不对了哦。我是有个字段是asd1,其中asd全部都一样,但是后面的1是自增量。
    是从1到4201。用了你的方法,就出问题了哦,好多地方加出来的结果都是一样
      

  3.   

    这个我想到办法了,我把asd替换掉,然后加,最后再把asd加回去,请问怎么在字段前面和后面加东西啊?谢谢
      

  4.   

    UPDATE tab_name SET abc=CONCAT('asd',REPLACE(abc,'asd',''));
      

  5.   

    UPDATE tab_name SET abc=CONCAT('asd',REPLACE(abc,'asd','')+200);上边忘了加200了
      

  6.   

    试试:update tab_name set abc=concat(substring(abc,1,3),substring(abc,4)+200)
    不过,最好是:
    update tab_name set abc=concat(substring(abc,1,3),cast(substring(abc,4) as signed)+200)
      

  7.   

    可以试试下面的方法
    <?php
       $sql= "select abc from a";
       $res=mysql_query($sql,$conn);
       while($row=mysql_fetch_row($res)){
            $str1 = substr($row[0],-1,1);
    $str2=substr($row[0],0,2);
            $newstr1=$str1+200;
    $newstr=$str2.$newstr1;
    $sql= "update a set abc='$newstr' where abc='$row[0]'";
    mysql_query($sql,$conn);

       }
      
      ?>
      

  8.   

    mysql 没有正则替换,在数据库方面解决比较困难!
    取出来在PHP里面实现非常容易!