今天遇到使用mysql进行递归
//向上递归
SELECT DISTINCT T2.org_no
FROM (
SELECT DISTINCT
@r AS t1_id,
(SELECT @r:= p_org_no FROM sgims.o_org WHERE
org_no = t1_id) AS p_org_no
FROM
(SELECT @r:= #{orgNo}) vars,
sgims.o_org h
WHERE @r <> -1) T1
JOIN sgims.o_org T2
ON T1.t1_id = T2.org_no
)
//向下递归
SELECT
t.*
FROM
(
SELECT
@ids AS _ids,
( SELECT @ids := GROUP_CONCAT( org_no ) FROM sgims.o_org WHERE FIND_IN_SET( p_org_no, @ids ) ) AS cids
FROM
sgims.o_org ,
( SELECT @ids := '43102') b
WHERE
@ids IS NOT NULL
) id,
sgims.o_org t
WHERE
FIND_IN_SET( t.org_no, ID._ids )
ORDER BY
org_no
转自:
点击