1.业务需求,需要选择二级节点后,获取他的所有子节点数据
2.思路通过Mysql的递归查询来获取子节点数据
SELECT
pd.id,
pd.parent_id,
pd.`name`
FROM
( SELECT * FROM p_document_directory_record WHERE parent_id IS NOT NULL ) pd,
( SELECT @pid := '父id' ) au
WHERE
FIND_IN_SET( parent_id, @pid ) > 0
AND @pid := concat( @pid, ',', id )
2.1 SQL解析
SELECT @pids := '0'
:= 是赋值
这里的意思是对pids进行赋值操作
FIND_IN_SET(parent_id, @pids)
查找parent_id等于pids的值
3.假如也需要获取选择父节点的选择数据只需要union合并即可
SELECT
pd.id,
pd.parent_id,
pd.`name`
FROM
( SELECT * FROM p_document_directory_record WHERE parent_id IS NOT NULL ) pd,
( SELECT @pid := '父id' ) au
WHERE
FIND_IN_SET( parent_id, @pid ) > 0
AND @pid := concat( @pid, ',', id )
UNION
SELECT
pd.id,
pd.parent_id,
pd.`name`
FROM
p_document_directory_record AS pd
WHERE
pd.id = '父id';