首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这个有关问题比较难,假设用户给定一个参数变量 @categoryId , 要的到属于该categoryId 的所有文章

2012-03-26 
这个问题比较难,假设用户给定一个参数变量 @categoryId , 要的到属于该categoryId 的所有文章。 文章数据表

这个问题比较难,假设用户给定一个参数变量 @categoryId , 要的到属于该categoryId 的所有文章。

文章数据表   (article),   其中有一个字段categoryId   是varchar   类型,存放多个文章分类的ID,代表这篇文章属于多个分类。


下面是一个SQL存储过程,   假设用户给定一个参数变量   @categoryId   ,   要的到属于该categoryId   的所有文章。

declare   @categoryId   varchar(2000)
set   @categoryId   =   '2|8|45|78|4|23 '       --   这个存放的都是分类的ID


要得到所有属于该分类的文章,怎么写SQL     ??  
 
是不是要用   WHILE   循环




[解决办法]
---测试数据
declare @categoryId varchar(2000)
set @categoryId = '2|8|45|78|4|23 '
create table tb(ID int,CgyID int)
insert tb select 1,1
union all select 2,2
union all select 3,8
union all select 4,7
union all select 5,4
union all select 6,2
select * from tb where charindex( '| '+cast(CgyID as varchar)+ '| ', '| '+@categoryId+ '| ')> 0
drop table tb
---结果:
/*
ID CgyID
----------- -----------
2 2
3 8
5 4
6 2
*/

热点排行