如何在SQL查询语句中查询部分数组匹配?

如表A中有一个名为id的字段,有N条记录:第一条,id=2,3,12第二条:id=6,22第三条:id=14第四条:id=22,11,55......我要查找任何包含有2... 如表A中有一个名为id的字段,有N条记录:
第一条,id=2,3,12
第二条:id=6,22
第三条:id=14
第四条:id=22,11,55
......
我要查找任何包含有
2,33,11,14,15,22这一字符串中任意数字的记录
如以上记录中第一条含有2,第三条含有14,第四条含有11和22,这三条记录将被查找出来,请问SQL语句怎么写?
展开
 我来答
walkmens
推荐于2018-03-23 · TA获得超过452个赞
知道小有建树答主
回答量:489
采纳率:100%
帮助的人:266万
展开全部
select * from a where charindex(‘2’,id)>0 or charindex(‘33’,id)>0 or charindex(‘11’,id)>0
or charindex(‘14’,id)>0 or charindex(‘15’,id)>0 or charindex(‘22’,id)>0

这样子。应该是没问题的
追问
你有没有想过charindex(‘2’,id)>0会把不该查出来的第二条记录和第四条记录给查出来了呢
追答
这个倒是没考虑到等等。。。。让我想想把 这样子写看是否可行
len(substring (@t,charindex('2',@t),charindex(',',@t)-1))=len('2') and charindex('2',@t)0
你试试
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
swcnjp
2013-07-10 · TA获得超过255个赞
知道答主
回答量:46
采纳率:0%
帮助的人:26.5万
展开全部
反过来想,2,33,11,14,15,22这一字符串中任意数字,在某条记录里。
select *
from a
where instr(id,'2')>0
or instr(id,'33')>0,
or instr(id,'11')>0...........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式