开发中有些场景是需要找下级信息的,比如查团队信息或者分佣之类的业务.
今天记录一种简单的查询方式
SELECT T2.level_, T3.member_id,T3.parent_id,T3.superior_chain
FROM(
SELECT @codes as _ids,
( SELECT @codes := GROUP_CONCAT(member_id)
FROM member
WHERE FIND_IN_SET(parent_id, @codes)
) as T1,
@l := @l+1 as level_
FROM member,
(SELECT @codes :='1000', @l := -1 ) T4
WHERE @codes IS NOT NULL
) T2, member T3
WHERE FIND_IN_SET(T3.member_id, T2._ids)
and member_id !='1000'
ORDER BY level_, member_id
;
查询结果如下