NND,捣鼓了好长时间才捣鼓出来的MySQL树型查询。效率可能有点低。查询时间比较长。
第一种:
特点:效率有点慢
DROP PROCEDURE P_QUERY_EQUIPMENT_LIST;
DROP PROCEDURE P_GET_EQUIPMENT_CHILDER;
create PROCEDURE P_QUERY_EQUIPMENT_LIST(IN rootId INT)
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tempList(sid int);
CALL P_GET_EQUIPMENT_CHILDER(rootId);
select sid from tempList where sid in (select id from equipment where node_level = 5);
drop temporary table if exists tempList;
END
CREATE PROCEDURE P_GET_EQUIPMENT_CHILDER(IN rootId INT)
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE b INT;
DECLARE curl CURSOR FOR SELECT id FROM equipment where parent_id = rootId;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
INSERT into tempList VALUES(rootId);
SET @@max_sp_recursion_depth = 10;
OPEN curl;
FETCH curl INTO b;
WHILE done = 0 DO
CALL P_GET_EQUIPMENT_CHILDER(b);
FETCH curl INTO b;
END WHILE;
CLOSE curl;
END;
第二种:
特点:当节点多时,会有遗漏,导致查询不全面。可能是FIND_IN_SET()函数有条件限制。
CREATE FUNCTION F_GET_EQUIPMENT_CHILD_LIST(rootId INT)
RETURNS varchar(21845)
BEGIN
DECLARE sChildList VARCHAR(21845);
DECLARE sChildTemp VARCHAR(21845);
SET sChildTemp =cast(rootId as CHAR);
WHILE sChildTemp is not null DO
IF (sChildList is not null) THEN
SET sChildList = concat(sChildList,',',sChildTemp);
ELSE
SET sChildList = concat(sChildTemp);
END IF;
SELECT group_concat(id) INTO sChildTemp FROM equipment where FIND_IN_SET(parent_id,sChildTemp)>0;
END WHILE;
RETURN sChildList;
END;
分享到:
相关推荐
js+jsp+java+mysql 实现树型菜单js+jsp+java+mysql 实现树型菜单js+jsp+java+mysql 实现树型菜单
mysql 递归查询 树型结构 代码逻辑
MySql无限分类结构与数据组树型菜单MySql无限分类结构与数据组树型菜单
主要介绍了MySQL实现树状所有子节点查询的方法,涉及mysql节点查询、存储过程调用等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例,以及优劣分析、探讨,需要的朋友可以参考下
易语言数据库填充到树型框例程源码,数据库填充到树型框例程,填充树型框
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
1,栏目无限级分类,形成树型结构,可以随意增加,修改,移动,删除栏目,移动或删除栏目的同时系统自动移动或删除其对应子栏目和信息。 2,系统支持国际化,采用UTF-8编码,资源文件里可以设置多国语言,形成多国语言...
12.3.3 用EXPLAIN理解查询操作的工作过程 12.4 数据库的优化 12.4.1 设计优化 12.4.2 权限 12.4.3 表的优化 12.4.4 使用索引 12.4.5 使用默认值 12.4.6 其他技巧 12.5 备份MySQL数据库 12.6 恢复MySQL数据库 12.7 ...
无限级分类,主要是通过储存上级分类的id以及分类路径来实现。由于数据的结构简单,所以要将分类的关系由树状显示,我只能想到用递归的方式给于实现。 无限级分类,主要是通过储存上级分类的id以及分类路径来实现。...
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百...数据库:MySql(建议用 5.7,8.0 有时候会有坑) 部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven Spring root vue.js
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...
easy记事本(网页版记事本),支持mysql数据插入和查询,快速查找,支持网页与文本合并显示。 mysql用户名root,密码Zzerp123。 使用tomcat部署,方便快捷。 将数据保存到mysql中,可以时常备份,并且使用。 部署: ...