sql 两个字段都是逗号隔开 怎么精确查找某个值

假设一个表tmpdata如下:idwidwname11,2weibo,qq32weibo我想根据wid=2,wname=qq查询出一条数据,正确结果是id=1的数据求教s... 假设一个表 tmpdata 如下:
id wid wname
1 1,2 weibo,qq
3 2 weibo

我想根据 wid=2,wname=qq 查询出一条数据,正确结果是id=1的数据
求教sql 2008 的语句怎么写,拜托了,大师!分暂时没有了,后面我赚了后补上
写错了,是wid=2,wname=weibo,希望查询出来只有ID=3这一条数据。
说的更透彻点就是,逗号分开的索引是对应的,比如ID=1的这数据,wid的1是对应wname的weibo,wid的2是对应wname的qq

--------------------------------------------------------------------------
用等号是有问题的,那我wid=2,wname=qq,where后用等号,岂不是查不到了?用like会又会查出多条
展开
 我来答
鲜美还清湛灬白桦N
推荐于2017-11-27 · TA获得超过621个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:528万
展开全部
/*
你是这个意思:
wid=1 wname=weibo 查询结果是id=1
wid=2 wname=qq 查询结果是id=1
wid=2 wname=weibo 查询结果是id=3
*/
--先创建一个函数,用来拆分字段值
Create Function f_split1(@SourceSql Varchar(8000),@StrSeprate Varchar(2))
Returns @temp Table(id Int Identity(1,1), col Varchar(100))
As
begin
Declare @ch as Varchar(100)
Set @SourceSql=@SourceSql+@StrSeprate
While(@SourceSql<>'')
Begin
Set @ch=left(@SourceSql,Charindex(@StrSeprate,@SourceSql,1)-1)
Insert @temp(col) Values(@ch)
Set @SourceSql=Stuff(@SourceSql,1,Charindex(@StrSeprate,@SourceSql,1),'')
End
Return
End
Go

--以下是查询代码
Select * From (
Select T.id,A.col As Wid,B.col As WName From T
Cross Apply dbo.f_split1(wid,',') A
Cross Apply dbo.f_split1(wname,',') B
where A.id=B.id) S
Where Wid='2' And WName='qq'

--解释,把字段按逗号拆分后,按自增id关联起来,及wid的第一个值跟wname的第一个值关联,以后依次,然后用等号查询你要的值
simdos
2014-12-09 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:73.6万
展开全部
你用select * from tmpdata where wid = '2',不应该出现1 1,2 weibo,qq啊
追问
看来我的描述有点问题,重新给改了,麻烦再看下,怎么搞这个,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式