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

如表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语句怎么写?
最新回答
山城夏秋

2024-11-23 10:07:47

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
你试试
那一抹浅笑

2024-11-23 08:26:00

反过来想,2,33,11,14,15,22这一字符串中任意数字,在某条记录里。
select *
from a
where instr(id,'2')>0
or instr(id,'33')>0,
or instr(id,'11')>0...........