SELECT rd.*
FROM (SELECT * FROM t_department WHERE parent_id IS NOT NULL and
type=#{platformType} and status=0 ) rd,
(SELECT @pid :=#{id}) pd
WHERE FIND_IN_SET(parent_id, @pid) > 0
AND @pid := concat(@pid, ',', id)
//不包含自己 (注意只能查询三级)
SELECT rd.*
FROM (SELECT * FROM t_department WHERE parent_id IS NOT NULL and
type=#{platformType} and status=0 ) rd,
(SELECT @pid :=#{id}) pd
WHERE FIND_IN_SET(parent_id, @pid) > 0
AND @pid := concat(@pid, ',', id)
union select * from t_department where FIND_IN_SET(id,@pid) > 0;(包含自己 *注意只能查询三级)
//没有层级限制
SELECT DATA.* FROM(
SELECT
@ids as _ids,
( SELECT @ids := GROUP_CONCAT(id)
FROM t_department
WHERE FIND_IN_SET(parent_id, @ids)
) as cids,
@l := @l+1 as level
FROM t_department,
(SELECT @ids :=#{id}, @l := 0 ) b
WHERE @ids IS NOT NULL
) id, t_epartment DATA
WHERE FIND_IN_SET(DATA.id, ID._ids)
ORDER BY id