我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql根据某层部门ID查询所有下级多层子部门的示例

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql根据某层部门ID查询所有下级多层子部门的示例

模拟表和数据脚本

复制以下sql语句生成一个叫sys_dept的表和插入若干构造好的有层级关系的数据,直接复制执行就ok


DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门编号',
 `p_id` int(11) DEFAULT NULL COMMENT '父级部门编号',
 `title` varchar(255) DEFAULT NULL COMMENT '父级部门名称',
 `is_open` int(11) DEFAULT NULL COMMENT '是否展开(0-展开,1-不展开)',
 `address` varchar(255) DEFAULT NULL COMMENT '部门地址',
 `create_time` datetime DEFAULT NULL COMMENT '创建时间',
 `remark` varchar(255) DEFAULT NULL COMMENT '备注',
 PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO sys_dept (p_id,title,is_open,address,create_time,remark) VALUES 
(0,'总经办',1,'深圳','2019-04-10 14:06:32.000','大BOSS')
,(1,'销售部',0,'武汉','2019-04-10 14:06:32.000','程序员?潘?)
,(1,'运营部',0,'武汉','2019-04-10 14:06:32.000','无')
,(1,'生产部',0,'武汉','2019-04-10 14:06:32.000','无')
,(2,'销售一部',0,'武汉','2019-04-10 14:06:32.000','销售一部')
,(2,'销售二部',0,'武汉','2019-04-10 14:06:32.000','销售二部')
,(2,'销售三部',0,'广州','2019-04-10 14:06:32.000','销售三部')
,(2,'销售四部',0,'广州','2019-04-10 14:06:32.000','销售四部')
,(2,'销售五部',0,'广州','2019-04-10 14:06:32.000','销售五部')
,(3,'运营一部',0,'武汉','2019-04-10 14:06:32.000','运营一部')
,(3,'运营二部',0,'武汉','2019-04-10 14:06:32.000','运营二部')
,(3,'运营三部',0,'武汉','2019-04-10 14:06:32.000','运营三部')
,(3,'运营四部',0,'武汉','2019-04-10 14:06:32.000','运营四部')
,(3,'运营五部',0,'武汉','2019-04-10 14:06:32.000','运营五部')
,(4,'生产一部',1,'深圳','2019-11-23 09:50:23.000','生产一部')
,(4,'生产二部',1,'深圳','2019-11-23 09:50:23.000','生产二部')
,(4,'生产三部',1,'深圳','2019-11-23 09:50:23.000','生产三部')
,(5,'销售一部一组',1,'深圳','2019-11-23 09:50:23.000','销售一部一组')
,(5,'销售一部二组',1,'深圳','2019-11-23 09:50:23.000','销售一部二组')
,(5,'销售一部三组',1,'深圳','2019-11-23 09:50:23.000','销售一部三组')
,(6,'销售二部一组',1,'深圳','2019-11-23 09:50:23.000','销售二部一组')
,(6,'销售二部二组',1,'深圳','2019-11-23 09:50:23.000','销售二部二组')
,(17,'生产三部一组',1,'深圳','2019-11-23 09:50:23.000','生产三部一组')
,(17,'生产三部二组',1,'深圳','2019-11-23 09:50:23.000','生产三部二组')
,(17,'生产三部三组',1,'深圳','2019-11-23 09:50:23.000','生产三部三组')
;

根据部门ID查询所有子部门


select
 id,title
from
 (
 select
 t1.id,t1.title,
 if(find_in_set(p_id, @pids) > 0,
 @pids := concat(@pids, ',', id),
 0) as ischild
 from
 (
 select
  id,
  p_id,
  title
 from
  ssmdemo.sys_dept t
 order by
  p_id,
  id ) t1,
 (
  select @pids := 17) t2 ) t3
where
 ischild != 0

其中@pids := 17的17就是要查询的部门ID

到此这篇关于Mysql根据某层部门ID查询所有下级多层子部门的示例的文章就介绍到这了,更多相关Mysql ID查询所有下级多层子部门内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql根据某层部门ID查询所有下级多层子部门的示例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql根据某层部门ID查询所有下级多层子部门的示例

模拟表和数据脚本复制以下sql语句生成一个叫sys_dept的表和插入若干构造好的有层级关系的数据,直接复制执行就okDROP TABLE IF EXISTS `sys_dept`; CREATE TABLE `sys_dept` (`id
2022-05-18

编程热搜

目录