--测试环境 create table # (userId varchar(20),name varchar(50),sid varchar(255)) insert into # select '002','aaa','00001,00002,00003,00004,00005' union all select '003','bbb','00003,00006'create table #temp (fileId varchar(20),name varchar(100)) insert into #temp select '00001','ggggg' union all select '00002','hhhhh' union all select '00003','jjjjj' union all select '00004','kkkkk' union all select '00005','lllll' union all select '00006','jjjjj'--测试 select b.name 用户, a.name 文件名称 from #temp a,# b where b.sid like '%'+a.fileId+'%'--结果 用户 文件名称 -------------------------------------------------- ---------------------------------------------------------------------------------------------------- aaa ggggg aaa hhhhh aaa jjjjj aaa kkkkk aaa lllll bbb jjjjj bbb jjjjj(所影响的行数为 7 行)
例如:
user表
sid
1,2,3
3,8,1other表
ID
1
2
3
那么请问USER表的3,8,1纪录要出来吗?
另外你说什么纪录,到底要什么字段,以什么形式
需要分割原来1,2,3,为
1
2
3
说清楚很重要
sid里放的都是文章的ID号,用逗号分隔,用户查看自己收藏的文章时就把sid的文章ID输出,当然,sid里放的ID号没有重复的,我开始以为用in可以,但报错,谢谢各位帮帮忙吧,我实再是无能为力了,如果实再不行我只有用笨方法了
--测试环境
create table # (userId varchar(20),name varchar(50),sid varchar(255))
insert into # select '002','aaa','00001,00002,00003,00004,00005'
union all select '003','bbb','00003,00006'create table #temp (fileId varchar(20),name varchar(100))
insert into #temp select '00001','ggggg'
union all select '00002','hhhhh'
union all select '00003','jjjjj'
union all select '00004','kkkkk'
union all select '00005','lllll'
union all select '00006','jjjjj'--测试
select b.name 用户, a.name 文件名称 from #temp a,# b where b.sid like '%'+a.fileId+'%'--结果
用户 文件名称
-------------------------------------------------- ----------------------------------------------------------------------------------------------------
aaa ggggg
aaa hhhhh
aaa jjjjj
aaa kkkkk
aaa lllll
bbb jjjjj
bbb jjjjj(所影响的行数为 7 行)