我用的是mysql数据库 有个字段值是如同:str
现在需要更新其中某个参数 所以我想到用替换 但出了点问题 str ="1,21,16,11,2,1,2,1";  将其中“1”替换为空【包含情况有“,1”或“1,”或“1”】 请问如何用替换语句实现...?? 最后需要的效果是:21,16,11,2,2 
str如果只有一个数(1)的话 也可以实现替换操作的 
update R set str = replace(str,',1','')
update R set str = replace(str,'1,','')
update R set str = replace(str,'1','')我这样操作但出问题 将16 21等等 就变成了6 2了

解决方案 »

  1.   

    SELECT *,
    MID(REPLACE(DD,',1,',','),2,
    LENGTH(REPLACE(DD,',1,',','))-1) AS DD1
     FROM (
    SELECT CONCAT(',',"1,21,16,11,2,1,2,1",',') AS DD) A
      

  2.   

    修改一下:
    SELECT *, 
    MID(REPLACE(DD,',1,',','),2, 
    LENGTH(REPLACE(DD,',1,',','))-2) AS DD1 
    FROM ( 
    SELECT CONCAT(',',"1,21,16,11,2,1,2,1",',') AS DD) A 相信 WWWWA 不会介意吧。
    这样就是楼主要的结果了。
    如果楼主不明白,看看 REPLACE 和 MID 函数的用法吧。
      

  3.   

    whalefish2001 你的是列表请问 现在要更新数据库里的数据如何实现有很多条数据 用update如何更新 我不像使用先列表再更新有没有一条SQL语句就能解决的???? 
      

  4.   

    你将"1,21,16,11,2,1,2,1"修改为你的字段名嘛
    update aa set gg=
    MID(REPLACE(CONCAT(',',姓名),',1,',','),2,
    LENGTH(REPLACE(CONCAT(',',姓名,','),',1,',','))-2) 自己学会举一反三
      

  5.   

    谢谢 我试下对了
    WWWWA wwwwb 
    你们不是双胞胎吧  昵称都这么奇怪 
      

  6.   

    表 A ;
    有一个字段 S ;
    S值为:1,21,16,11,2,1,2,1String id = "1";
    麻烦大虾看看我这个代码那错了...sqlStr = "update A set S="
    + "Mid(Replace(Concat(',',S,','),',"+id+",',','),2"
    + ",Length(Replace(Concat(',',S,','),',"+id+",',','))-2)"
    + "";
    老提示:
    You have an error in your SQL syntax; 
    check the manual that corresponds to your 
    MySQL server version for the right syntax to use 
    near '[Ljava.lang.String;@1b17d49)' at line 1
      

  7.   

    我在SQLYOG中直接执行update aa set gg=
    MID(REPLACE(CONCAT(',',姓名),',1,',','),2,
    LENGTH(REPLACE(CONCAT(',',姓名,','),',1,',','))-2) SQL语句,没有问题,结果正确
      

  8.   

    当然可以,结果正确我才贴SQL语句