我是靠谱客的博主 温婉大山,最近开发中收集的这篇文章主要介绍mysql递归查询所有子部门,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求是根据传入的部门id查询此部门下所有的子部门和子部门的子部门
部门表名称是sys_dept
部门id是dept_id
传入的部门id是#{deptId}
查询完之后返回部门id

拿到sql后只要替换对应的变量就可以了


SELECT
dept_id
FROM
(
SELECT
@ids AS _ids,
( SELECT @ids := GROUP_CONCAT( dept_id ) FROM sys_dept WHERE FIND_IN_SET( parent_id, @ids ) ) AS cids,
@l := @l + 1 AS LEVEL
FROM
sys_dept,
( SELECT @ids := #{deptId}, @l := 0 ) b
WHERE
@ids IS NOT NULL
) id,
sys_dept DATA
WHERE
FIND_IN_SET( DATA.dept_id, ID._ids )
ORDER BY
LEVEL,
dept_id

最后

以上就是温婉大山为你收集整理的mysql递归查询所有子部门的全部内容,希望文章能够帮你解决mysql递归查询所有子部门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部