我觉得这样可能好一点 select * from where CharIndex('2,',分类)>0select * from where CharIndex('2,',分类)>0 Or CharIndex('5,',分类)
错了,是这样select * from where CharIndex('2,',分类)>0select * from where CharIndex('2,',分类)>0 Or CharIndex('5,',分类)>0
是,我写出来只是给你一个思路,这样还有一个问题,就是 在使用select * from where CharIndex('2,',分类)>0时,'12,'这样的数据也会被查询出来。再THINKING。
declare @a varchar(30),@sql varchar(3000) set @a='2,4' set @a=replace(@a,',',''' as a union all select ''') set @a=''''+@a+'''' select @a exec('select '+@a+' into #tmp') select * from 文章 a,#tmp b where a.分类=b.a go
declare @a varchar(30),@sql varchar(3000) set @a='2,4' set @a=replace(@a,',',''' as a union all select ''') set @a=''''+@a+'''' select @a exec('select '+@a+' into #tmp') select * from 文章 a,#tmp b where a.分类=b.a drop table #tmp go
用这样子 select * from 文章 where 分类 like '2,%' union select * from 文章 where 分类 like '%,2' union select * from 文章 where 分类 like '%,2,%'
想到了,楼主,可以这样解决。select * from where CharIndex(',2,',','+分类+',')>0select * from where CharIndex(',2,',','+分类+',')>0 Or CharIndex(',5,',','+分类+',')>0
select * from where CharIndex('2,',分类)>0select * from where CharIndex('2,',分类)>0 Or CharIndex('5,',分类)
在使用select * from where CharIndex('2,',分类)>0时,'12,'这样的数据也会被查询出来。再THINKING。
set @a='2,4'
set @a=replace(@a,',',''' as a union all select ''')
set @a=''''+@a+''''
select @a
exec('select '+@a+' into #tmp')
select * from 文章 a,#tmp b
where a.分类=b.a
go
http://community.csdn.net/Expert/topic/3890/3890187.xml?temp=.7302973
set @a='2,4'
set @a=replace(@a,',',''' as a union all select ''')
set @a=''''+@a+''''
select @a
exec('select '+@a+' into #tmp')
select * from 文章 a,#tmp b
where a.分类=b.a
drop table #tmp
go
select * from 文章 where 分类 like '2,%'
union select * from 文章 where 分类 like '%,2'
union select * from 文章 where 分类 like '%,2,%'