我数据库里有个字段classArray 存的数据是这样的 10/11/22/66/55/13 
现在我要检索出 classArray 里包含10的数据
select * from table  where 10 in (replace(classArray,'/',',')) 报错 
因为  replace(classArray,'/',',') 这里面的数据是这样的 '10,11,22,66,55,13'  语句就变成这样了:
select * from table where 10 in ('10,11,22,66,55,13') 或
select * from table where '10' in ('10,11,22,66,55,13')
各位大侠帮帮我 谢谢了

解决方案 »

  1.   

    SELECT * FROM table WHERE classArray LIKE '%10%'
      

  2.   

    要看一个字段里是否包含特定的字符串可以用LIKE关键字,在表达式里用通配符"%"来代替其他字符串。lz的sql语句是不对的。
      

  3.   


    /*按照符号分割字符串*/
    create function [dbo].[m_split](@c varchar(2000),@split varchar(2))   
      returns @t table(col varchar(200))   
      as   
        begin   
          while(charindex(@split,@c)<>0)   
            begin   
              insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))   
                set @c = stuff(@c,1,charindex(@split,@c),'') 
               -- SET @c = substring(@c,charindex(' ',@c)+1,len(@c))     
            end   
          insert @t(col) values (@c)   
          return   
    end
     
    /*测试
    select * from dbo.m_split('1,2,3,4,5',',')
    */
    SELECT * FROM dbo.m_split('10/11/22/66/55/13/101','/') WHERE col LIKE '%'+'10'+'%'
    /*结果
    col
    -------
    10
    101
    */
      

  4.   

    select * from table  where charindex(',10,',','+typers+',')>0 
      

  5.   

    select * from table  where charindex(',10,',','+ classArray +',')>0 
      

  6.   

    SELECT * FROM table WHERE classArray LIKE '10/%' or classArray  LIKE '%/10' or classArray  LIKE '%/10/%' 
      

  7.   


    问下 SELECT * FROM dbo.m_split('10/11/22/66/55/13/101','/') WHERE col LIKE '%'+'10'+'%'
    这句里的 
    dbo.m_split('10/11/22/66/55/13/101','/') 改成 dbo.m_split(字段名,'/') 怎么写?
      

  8.   

    SELECT * FROM table WHERE classArray LIKE '%10%'