1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MySQL递归查询树状表的子节点 父节点【MySQL】

MySQL递归查询树状表的子节点 父节点【MySQL】

时间:2021-11-03 04:42:23

相关推荐

MySQL递归查询树状表的子节点 父节点【MySQL】

数据库|mysql教程

sqlserver,oracle,mysql,程序,资

数据库-mysql教程

个性网址导航源码下载,怎么更改vscode语言,ubuntu 编程 全屏,tomcat各级目录介绍,sqlite3怎么插入数据库,延时爬虫,php 增加数组,seo网站描述在哪看,物业 网站 下载,微博企业版模板lzw

简介:mysql5.0.94版本,该版本以及较高级的版本(5.5、6等等)尚未支持循环递归查询,和sqlserver、oracle相比,mysql难于在树状表中层层遍历的子节点。本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算是照搬了,父节点查询是逆思维弄的。

管理文件的网站源码,vscode实用的主题,ubuntu系统19,tomcat工作室,手机版sqlite3下载,笑脸爬虫,php 5.3 vc9,seo真的有用吗,下码网站大全,php模板效率lzw

资料参考:/ACMAIN_CHM/article/details/4142971#comments

钓鱼网页源码,vscode怎么直接联想js,ubuntu 目录 别名,tomcat8教程,爬虫资讯站,php查询类型转换,河北区seo优化公司,如何给WordPress网站更换域名,dz门户企业模板lzw

表结构和表数据就不公示了,查询的表user_role,主键是id,每条记录有parentid字段(对应该记录的父节点,当然,一个父节点自然会有一个以上的子节点嘛)

CREATE FUNCTION `getChildList`(rootId INT) RETURNS varchar(1000) BEGINDECLARE sChildList VARCHAR(1000);DECLARE sChildTemp VARCHAR(1000);SET sChildTemp =cast(rootId as CHAR);WHILE sChildTemp is not null DO IF (sChildList is not null) THENSET sChildList = concat(sChildList,,,sChildTemp);ELSE SET sChildList = concat(sChildTemp);END IF; SELECT group_concat(id) INTO sChildTemp FROM user_role where FIND_IN_SET(parentid,sChildTemp)>0;END WHILE;RETURN sChildList; END;/*获取子节点*//*调用: 1、select getChildList(0) id; 2、select * 5From user_role where FIND_IN_SET(id, getChildList(2));*/CREATE FUNCTION `getParentList`(rootId INT) RETURNS varchar(1000) BEGINDECLARE sParentList varchar(1000);DECLARE sParentTemp varchar(1000);SET sParentTemp =cast(rootId as CHAR);WHILE sParentTemp is not null DOIF (sParentList is not null) THEN SET sParentList = concat(sParentTemp,,,sParentList);ELSE SET sParentList = concat(sParentTemp);END IF; SELECT group_concat(parentid) INTO sParentTemp FROM user_role where FIND_IN_SET(id,sParentTemp)>0;END WHILE;RETURN sParentList; END;/*获取父节点*//*调用: 1、select getParentList(6) id; 2、select * From user_role where FIND_IN_SET(id, getParentList(2));*/

弄完了,pm说不要弄存储结构,在java里面多查几次吧。。。存储结构有很多优点,包括加快查询速度、提高安全性等等,但是会加大数据库负荷,很多文章建议结合使用,个人也觉得少用点会好些。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。