表 aaa 有如下列
id          name
1        admin,qp,zx
2         admin,hl
3          qp,zx然后我有一个string str=admin  做为查询条件,想查询出name列里面包含了admin的行select * from  aaa where..  ..
查询结果显示:
1        admin,qp,zx
2         admin,hl 我用CHARINDEX('"+str+"',name) > 0 这个好象不行,遇到:
       name
adminsdadsa,qq,tt    就出问题了,哪位兄弟帮忙解决,谢了   

解决方案 »

  1.   

    select   *   from     aaa   where CHARINDEX(','+str+',',','+name+',')   >   0
      

  2.   

    select * from t where charindex(','+'str'+',',','+name+',')>0
      

  3.   

    select * from tb where charindex(',admin,' , ',' + name + ',') > 0
      

  4.   

    create table aaa(
    id int identity(1,1),
    name varchar(20)
    )insert into aaa
    select              'admin,qp,zx'
    union select        'admin,hl' 
    union select        'qp,zx'
    union select        'adminstrator, ss'---------------test------------
    select * from aaa 
    where name like 'admin,%' or name like '%,admin'  
    or name ='admin'----------------
    drop table aaa
      

  5.   

    declare @s as varchar(10)
    set @s = 'admin'select * from tb where charindex(',' + @s + ',' , ',' + name + ',') > 0
      

  6.   

    create table aaa(id int, name varchar(32))
    insert aaa select 1, 'admin,qp,zx' 
    union all select 2, 'admin,hl' 
    union all select 3, 'qp,zx' 
    union all select 4, 'adminsdadsa,qq,tt' declare @str varchar(32)
    set @str='admin' select * from aaa   
    where CHARINDEX(','+@str+',', ','+name+',')>0
    /*
    id          name
    ----------- --------------------------------
    1           admin,qp,zx
    2           admin,hl(2 row(s) affected)
    */drop table aaa
      

  7.   

    楼主的要求表达的不够好耶,你应该说,你只要admin自己作为整个元素的样子,夹在中间的不要,像*admin*是不行的。
      

  8.   

    CHARINDEX('"+str+"',name)   >   0  
    -->
    CHARINDEX('"+str+"',','+name+',')   >   0  
      

  9.   

    写错了
    CHARINDEX('"+str+"',name)   >   0  
    --〉
    CHARINDEX(',"+str+",',','+name+',')   >   0  
      

  10.   

    SELECT * FROM aaa WHERE  CHARINDEX(',admin,',','+name+',')>0 
      

  11.   

    SELECT *FROM aaa WHERE name LIKE '%'"+str+"'%'
      

  12.   

    select * from t where Name like @str+'%'