SQL语句
替换掉这3个字段就可以直接在MySQL运行。id = 部门id、pid = 上级id、name = 部门名称
SELECT
id,pid,name
FROM
(
SELECT
t1.id,t1.name,t1.pid,
IF ( find_in_set( pid, @pids ) > 0, @pids := concat( @pids, ',', id ), -1 ) AS ischild
FROM
( SELECT id, pid,name FROM '部门表名' t ) t1,
( SELECT @pids := #{id} ) t2
) t3
WHERE
ischild != -1
or id = #{id} -- 去掉这句则不显示当前部门