先来一张表
ID myID
1 2,3,5,8
2 3
3 13,32,50
4 35,20
想通过ID=2 的 3 查找出 ID=1 的这个结果,因为 MyID=3 属于ID=1的MyID 里面的
怎么查找呢
应该可以用一个子查询实现
select * from test te where FIND_IN_SET((select myid from test where id='2'),te.myid) and id<>'2'; 看能不能给你提供一种思路。
子查询:
select ID from myTable where myID in(select myID from myTable where ID = 2)
SELECT *
FROM #temp t
WHERE not EXISTS
(
SELECT *
FROM
(
SELECT ',' + item + ',' AS item
FROM dbo.f_split(
(
SELECT TOP 1 myid FROM #temp WHERE id = 2
),
','
)
) a
WHERE CHARINDEX(a.item, ',' + t.myid + ',') <= 0
)
AND id !=2