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,titlefrom ( 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 ) t3where ischild != 0
其中@pids := 17的17就是要查詢的部門ID
到此這篇關于Mysql根據某層部門ID查詢所有下級多層子部門的示例的文章就介紹到這了,更多相關Mysql ID查詢所有下級多層子部門內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
