比如UserID=3,UserRole=‘2,3,13,20’
查询出UserID=UserRole都为3的用户,怎么做到int型UserID和字符串型UserRole关联呢我用了cast(‘%,UserID,%’ as varchar)=‘%,UserRole,%’这样查出来都是null,请问应该怎么写呢

解决方案 »

  1.   

     (len(','+UserRole+',')-len(replace((','+UserRole+','),(','+UserID+','),'')))>0
      

  2.   

     create table tt
     (UserID int,UserRole varchar(200))
     
     insert into tt values(3,'2,3,13,20')
      insert into tt values(4,'2,3,13,20')
      insert into tt values(13,'2,3,13,20')
      insert into tt values(44,'2,3,13,20')
      
     select * from tt
      where  (len(','+UserRole+',')-len(replace((','+UserRole+','),(','+cast(UserID as varchar)+','),'')))>0
      

  3.   

    userid=3 and ','+userrole+',' like '%,3,%'
      

  4.   


      select * from tt
      where charindex(convert(varchar(max),UserID),UserRole,0)>0
      

  5.   

     where ','+convert(varchar(10),UserID)+',' like '%,'+UserRole+',%'
    或者
    where charindex(','+convert(varchar(10),UserID)+',', ','+UserRole+',')>0