向下递归查询
sql
SELECT ID,NAME,PARENT_ID,LEVEL_
FROM(SELECT @ID AS _IDS,
(SELECT @ID := GROUP_CONCAT(ID)
FROM TREE_TABLE
WHERE FIND_IN_SET(PARENT_ID,@ID) > 0
AND REMOVE = 'N') T1,
@L := @L + 1 AS LEVEL_
FROM TREE_TABLE,
(SELECT @ID := 'start', @L:= 0) T2
WHERE @ID IS NOT NULL) T3,
TREE_TABLE T4
WHERE FIND_IN_SET(T4.ID,T3._IDS) > 0
ORDER BY T3.LEVEL_,T4.SORT
start为开始递归的父ID,LEVEL为层级,SORT为原来表里的排序字段。