1.业务需求,需要选择二级节点后,获取他的所有子节点数据
2.思路通过Mysql的递归查询来获取子节点数据
SELECTpd.id,pd.parent_id,pd.`name`
FROM( SELECT * FROM p_document_directory_record WHERE parent_id IS NOT NULL ) pd,( SELECT @pid := '父id' ) au
WHEREFIND_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合并即可
SELECTpd.id,pd.parent_id,pd.`name`
FROM( SELECT * FROM p_document_directory_record WHERE parent_id IS NOT NULL ) pd,( SELECT @pid := '父id' ) au
WHEREFIND_IN_SET( parent_id, @pid ) > 0
AND @pid := concat( @pid, ',', id ) UNION
SELECTpd.id,pd.parent_id,pd.`name`
FROMp_document_directory_record AS pd
WHEREpd.id = '父id';