比如,字段A中有字符串“11,12,33,112”,用逗号分隔的,现在我要查其中是否包含了11。如果用like '%11%' 会把112也给查出来,我只要求把11查出来,有什么办法可以解决这个问题呢?附加一个问题,如果查到有11,我想从中删除11,变成“12,33,112”,又该怎么做呢?求高手解决

解决方案 »

  1.   

    光 sql 语句里判断的话 like '11,%' or like '%,11,%' or like '%,11'。
      

  2.   


    create table #temp(idnum VARCHAR(6),idname varchar(20))
    insert into #temp values('id1','11')
    insert into #temp values('id2','12')
    insert into #temp values('id3','112')declare @str VARCHAR(10)
    set @str='11,12,33,112'
    select * from #temp where CHARINDEX(idname,@str)>0
    /*
    idnum  idname
    ------ --------------------
    id1    11
    id2    12(2 行受影响)
    */
    --删除
    DELETE FROM #temp WHERE CHARINDEX(idname,@str)>0
      

  3.   

    在程序中使用字符串操作就可以了
    1 先使用Split()方法得到每个逗号分隔的字符串,再循环得到的字符数组判断是否有等于11的字符串
    2 使用Replace()方法
      

  4.   

    把字段A用豆号分隔 string[] a =A.Split(',');循环遍历数组a, 等于11,就是存在的。  string b="";
    for(int i=0;i<a.length;i++)
    {
      if(a[i]!="11")
       {
         b+=a[i]; 
       }
    }
      

  5.   


    string strA = "11,22,112";
    Console.WriteLine(strA.Split(',').Contains("11"));
    //true
    Console.WriteLine(strA.Split(',').Contains("1"));
    //false
      

  6.   

    Regex.IsMatch(yourstr,@"\b11\b")
    Regex.Replace(yourstr,@"\b11\b","")