场景:递归查询是我们开发中很常见的,如果没有一个比较好的思路,这将会让我们很头疼。
我这里介绍一个查询部门的例子,希望能给你一些启发
部门sql
-- ---------------------------- -- Table structure for `sys_dept` -- ---------------------------- DROP TABLE IF EXISTS `sys_dept`; CREATE TABLE `sys_dept` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘部门id‘, `name` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘部门名称‘, `parent_id` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘上级部门id‘, `level` varchar(200) NOT NULL DEFAULT ‘‘ COMMENT ‘部门层级‘, `seq` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘部门在当前层级下的顺序,由小到大‘, `remark` varchar(200) DEFAULT ‘‘ COMMENT ‘备注‘, `operator` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘操作者‘, `operate_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘最后一次操作时间‘, `operate_ip` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘最后一次更新操作者的ip地址‘, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4; -- ---------------------------- -- Records of `sys_dept` -- ---------------------------- BEGIN; INSERT INTO `sys_dept` VALUES (‘1‘, ‘技术部‘, ‘0‘, ‘0‘, ‘1‘, ‘技术部‘, ‘system‘, ‘2017-10-11 07:21:40‘, ‘127.0.0.1‘), (‘2‘, ‘后端开发‘, ‘1‘, ‘0.1‘, ‘1‘, ‘后端‘, ‘system-update‘, ‘2017-10-12 07:56:16‘, ‘127.0.0.1‘), (‘3‘, ‘前端开发‘, ‘1‘, ‘0.1‘, ‘2‘, ‘‘, ‘system-update‘, ‘2017-10-14 11:29:45‘, ‘127.0.0.1‘), (‘4‘, ‘UI设计‘, ‘1‘, ‘0.1‘, ‘3‘, ‘‘, ‘system‘, ‘2017-10-12 07:55:43‘, ‘127.0.0.1‘), (‘11‘, ‘产品部‘, ‘0‘, ‘0‘, ‘2‘, ‘‘, ‘Admin‘, ‘2017-10-16 22:52:29‘, ‘0:0:0:0:0:0:0:1‘), (‘12‘, ‘客服部‘, ‘0‘, ‘0‘, ‘4‘, ‘‘, ‘Admin‘, ‘2017-10-17 00:22:55‘, ‘0:0:0:0:0:0:0:1‘); COMMIT;
原文地址:https://www.cnblogs.com/coder-lzh/p/8673156.html
时间: 2024-10-16 21:08:37