mysql存储过程系列一:递归查询
来源:互联网 发布:无人机数据采集 编辑:程序博客网 时间:2024/05/21 10:22
FieldTypeComment
seq_novarchar(100) NULL机构编码(规则:省级机构:1-9,市级:10-99,县级100-999,网格:大于1000)
parent_seq_nobigint(20) NULL上级机构编码
namevarchar(50) NULL机构名
flagint(1) NULL机构所属的级别(1表示省级,2表示市级,3表示县级,4表示网格级别)
priorityint(4) NULL机构排序
remarksvarchar(500) NULL
备注
CREATE
)
现在要做的是,给定一个部门的id,查询出他下面所有的子部门。如给定部门id为3,那么需要输出3,5,6
需要编写两个存储过程,一个是基础的存储过程,执行递归操作,命名为:findChildList,还有一个是调用该存储过程的存储过程,使用递归存储过程执行后的结果,命名为:findDepList。
首先定义执行递归操作的存储过程:findChildList
PROCEDURE findChildList(IN departmentId BIGINT)
BEGIN
END
再定义调用递归操作的存储过程:findDepList
CREATE DEFINER = 'root'@'localhost'
PROCEDURE findDepList(IN departmentId BIGINT)
BEGIN
);
FROM
FROM
END
现在在mysql中创建好这两个存储过程,并且执行 call findDepList(3)就会输出3,5,6
临时表是执行递归查询的关键,要想使用存储过程执行后的结果,使用临时表是一种很好的办法,在这个例子中,在主调程序(findDepList)中创建好了临时表tmp_Dep,在被调用程序(findChildList)中往临时表中插入数据,最后在主调程序中可以使用递归查询后的数据。注意:单纯执行findChildList会报语法错误。这样在我们的业务逻辑中如果需要查询一个部门的子部门,只需要将findDepList的代码移植过去,既创建中间表,然后执行存储过程,最后就可以从中间表中查询出需要的结果。
- mysql存储过程系列一:递归查询
- mysql存储过程系列二:递归查询最…
- Mysql存储过程递归
- mysql 递归查询一
- MySQL存储过程递归调用
- mysql存储过程使用递归
- SQL2005递归查询+存储过程分页
- mysql 查询创建存储过程
- MySQl存储过程翻页查询
- Mysql存储过程--循环查询
- mysql读取树形结构所有子节点 mysql递归查询 详解 存储过程详解 查询所有子节点详解
- mysql存储过程(递归,交叉表)
- mysql--游标/递归/存储过程/临时表
- mysql存储过程-递归赋值国家地区
- MySQL之存储过程(一)
- mysql存储过程(一)
- Mysql 存储过程(一)
- mysql 存储过程(一)
- 利用eclipsse快速查看xml是如何布局的
- 使用jasperreport的工程部署在linu…
- tomcat中的内存溢出
- Oracle笔记:层次查询(Select)
- centos中安装多个tomcat
- mysql存储过程系列一:递归查询
- RT 3570 wifi 移植手册
- mysql存储过程系列二:递归查询最…
- centos环境中mysql数据库里的数据…
- MySQL数据库备份和还原的常用命令
- mysql中将年和周次转换成日期的函数
- visual studio 2010中搭建Open GL开发环境
- vs2008中构建osg开发环境
- 字符转换异常