库里有一个字段,内容如下
9,10,11
12,13
1,2
3以上是例子,实际输的过程中数字怎么组合都有可能
现在想查找这个字段里面有数字1的记录(注意就是想找1,把11,12,13都要略过),或找2,然后再找到10,11,12什么的,就是想按照这个排列这几条记录,需要完全匹配数字才行了,怎么办?

解决方案 »

  1.   

    select * from table1 where 字段 like '1,'
      

  2.   

    方法1:直接使用sql server中得函数,charindex,substring等(如果不是sql server,此法可能不管用)
    //查找11得
    select * from testt
    where charindex('11',value) <> 0 and 
    (substring(value,charindex('11',value)+len('11'),1)=',' 
    or substring(value,charindex('11',value)+len('11'),1)='')
    and 
    (
    substring(value,charindex('11',value)-1,1)=','
    or 
    substring(value,charindex('11',value)-1,1)='')
    //查找1得,其实都一样,只是把11变成了1,你可以自己设置一个参数传递
    select * from testt
    where charindex('1',value) <> 0 and (substring(value,charindex('1',value)+len('1'),1)=',' 
    or substring(value,charindex('1',value)+len('1'),1)='')
    and 
    (
    substring(value,charindex('1',value)-1,1)=','
    or 
    substring(value,charindex('1',value)-1,1)='')上述方法得思路是,通过charindex被查找字符串是否在串中出现,如果出现,那么他两边应该是逗号或者是空方法二:
    把字段内容查找出来后,放入一个tstringlist,然后利用tstringlist类得以下属性或方法进行查找
      Delimiter
      DelimitedText
      Find()
      

  3.   

    就用songbo_pp的方法,你在数据库存的时候稍微改一下,改成这个样子:
    1,3,12,