`
zyn010101
  • 浏览: 324548 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MYSQL树状查询

阅读更多



 oracle中可以采用connect by 来进行树状查询,在MYSQL中却没有提供该功能,但是,使用存贮过程我们也可以实现该查询。

创建一张表 fd_id varchar(50)--主键,fd_name varchar(50),fd_parentid varchar(20);

 

创建存贮过程:

 

drop procedure if exists   findLChild;
/* iid 递归父节点 , layer 允许递归深度 */

CREATE PROCEDURE findLChild(iid varchar(50),layer bigint(20))
BEGIN
    /*创建接受查询的临时表 */
    create temporary  table if not exists tmp_table(id varchar(50),name varchar(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    /*最高允许递归数*/
    SET @@max_sp_recursion_depth = 10 ;
     call iterative(iid,layer);/*核心数据收集*/
    select * from tmp_table ;/* 展现 */
    drop temporary  table if  exists   tmp_table ;/*删除临时表*/
   END;


drop procedure if exists   iterative ;
CREATE PROCEDURE iterative(iid varchar(50),layer bigint(20))
    BEGIN
  	 declare tid varchar(50) default iid ;
         declare tname varchar(50) character set utf8;

         /* 游标定义 */
         declare cur1 CURSOR FOR select fd_id,fd_name from sys_org_element where fd_parentid=iid ;
         declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tid = null;
      
      /* 允许递归深度 */
      if layer>0 then
         OPEN cur1 ;
         FETCH cur1 INTO tid,tname ;
           WHILE ( tid is not null ) 
              DO
              /* 核心数据收集 */
           insert into tmp_table values(tid,tname);
               call iterative(tid,layer-1);
              FETCH cur1 INTO tid,tname ;
           END WHILE;
       end if;
    END;

 

调用存贮过程:call findLChild('12d8385f65a85c497d232ef4294ac737',5);

结果

  • 大小: 68.8 KB
分享到:
评论

相关推荐

    mysql 树形结构查询

    mysql 树形结构查询 MySQL 树形结构查询是指使用存储过程来实现 MySQL 数据库中的树形结构查询。这种查询方式可以高效地查询树形结构的数据,并且可以根据需要设置递归深度。 MySQL 中的树形结构查询可以使用存储...

    MySql 中查询树形结构的全部子项列表 Function

    本文将深入探讨如何在MySQL中查询树形结构的全部子项列表,结合提供的`MySql_Link_Function.sql`文件,我们将探讨一种有效的方法来实现这一功能。 首先,树形结构在数据库中的存储通常采用自引用的方式,即每个节点...

    MySQL递归查询

    MySQL 递归查询是指在 MySQL 中实现类似 Oracle Hierarchical Queries 的功能,用于查询树形结构中的所有子节点。由于 MySQL 目前还没有内置的递归查询功能,因此需要使用其他方法来实现。 第一种方法:使用函数来...

    mysql递归查询.doc

    MySQL 递归查询是指在 MySQL 数据库中使用递归函数来实现树形结构数据的查询,例如部门表中某个部门的所有下属部分或者某个部分的所有上级部门。 在 MySQL 中实现递归查询需要使用自定义函数(Stored Function),...

    mysql数据表导出生成xml文件和树形结构

    然后,利用这个树结构,我们可以开发一个用户界面,展示数据表的树形视图。用户可以通过点击节点来加载或隐藏子节点,从而实现交互式浏览。 总之,MySQL数据表导出到XML文件是一个涉及数据库连接、数据查询、XML...

    ztree树形结构+mysql完整

    本项目"ztree树形结构+mysql完整"结合了ZTree的功能与MySQL数据库的使用,提供了一个完整的解决方案,包括数据存储、查询以及前端交互。 首先,ZTree的核心特性在于其丰富的API和可定制性。它支持动态加载、节点...

    在java中 遍历mysql中的树形结构

    在Java中遍历MySQL数据库中的树形结构是一项常见的任务,尤其是在处理组织结构、文件系统或任何具有层次关系的数据时。本文将深入探讨如何利用Java语言和MySQL数据库来实现这一功能,解析给定代码片段,并提供一种...

    jsp+mysql+java 写的树形

    【标签】"树形" 进一步强调了项目的重点在于实现树状的数据展示。在Web开发中,树形结构通常由JavaScript库(如jQuery UI、d3.js或Angular Material)在客户端渲染,但这个项目似乎是在服务器端使用Java处理,然后在...

    MySQL实现树状所有子节点查询的方法

    在MySQL中,实现树状所有子节点的查询并非像Oracle那样可以直接使用Hierarchical Queries和`CONNECT BY`语句。然而,尽管MySQL不直接支持这样的...根据实际情况和性能需求,可以选择合适的方法来实现树形结构的查询。

    递归查询菜单树,支持mysql,oracle

    在构建应用程序时,特别是涉及到用户界面的交互,如菜单系统,我们经常需要将数据组织成层次结构,例如树形结构。这里,我们将深入探讨如何使用递归查询来构建菜单树,并特别关注在MySQL和Oracle这两种广泛使用的...

    Ajax+jsp+MySQL实现动态树形菜单

    在本项目中,JSP主要负责处理服务器端逻辑,如接收Ajax请求,查询MySQL数据库获取树形菜单的数据,然后以JSON或XML格式返回给客户端。JSP还可以生成HTML模板,用于构建树形结构的基础框架。 再来说说**MySQL**,这...

    Mysql树形递归查询的实现方法

    在数据库管理中,树形...总的来说,尽管MySQL没有内置的递归查询功能,但通过自定义函数和适当的设计,仍然可以有效地处理树形结构数据的查询。理解这些技术可以帮助我们在MySQL环境中优雅地处理复杂的层次数据问题。

    mysql 递归查询 树型结构 代码逻辑

    下面我们将通过具体的例子来深入探讨如何使用MySQL进行递归查询,并结合Java代码实现树形结构的构建。 #### 数据表设计 根据题目中的描述,我们可以看到一个简化的数据表结构如下: - **Id**:记录的唯一标识。 -...

    树形查询带记录数量

    在进行树形查询时,我们通常会用到递归SQL查询或者利用数据库提供的特定功能,如Oracle的CONNECT BY,MySQL的WITH RECURSIVE,或者SQL Server的Hierarchical Queries。这些语法允许我们构建一个层次结构,从根节点...

    springboot+mybatis-plus+gradle+mysql+swagger基础增删改查、树形查询

    本项目基于一系列技术栈,包括Spring Boot、MyBatis Plus、Gradle、MySQL和Swagger,实现了一个基础的增删改查(CRUD)功能,并提供了树形查询的能力。下面将详细介绍这些技术及其在项目中的应用。 **1. Spring ...

    mysql查询分析器

    3. **数据可视化**:SQLYog Enterprise提供数据查看器,以表格、图表或树形结构显示查询结果,帮助用户更好地理解数据模式和关系。它还能生成报表,便于数据分析和决策制定。 4. **备份与恢复**:数据库的安全性至...

    MYSQL查询调优实战

    T树通过一种特殊的树形结构来优化多列索引的性能,但这种索引在MySQL中不常用,通常用在某些特定的数据库系统中,因为其维护成本和实现复杂度较高。 Hash Index是基于哈希表实现的索引,它通过哈希函数快速定位数据...

    MySQL实现递归查询的三种方式.rar

    在数据库管理中,递归查询是一种处理层次结构数据的有效方法,尤其在关系型数据库如MySQL中,递归查询可以帮助我们解决树形结构或有层级关系的数据检索问题。本资料主要探讨了MySQL中实现递归查询的三种常见方法:自...

Global site tag (gtag.js) - Google Analytics