`

mysql 递归查询

 
阅读更多
CREATE TABLE nodelist(  
     id INT PRIMARY KEY,            
     nodename VARCHAR(20),          
     pid INT                         
    );     



    Insert INTO nodelist VALUES(1,'A',null);  //父节点为,即根节点。
    Insert INTO nodelist VALUES(2,'B',1);  
    Insert INTO nodelist VALUES(3,'C',1);  
    Insert INTO nodelist VALUES(4,'D',2);  
    Insert INTO nodelist VALUES(5,'E',3);  
    Insert INTO nodelist VALUES(6,'F',3);  
    Insert INTO nodelist VALUES(7,'G',5);  
    Insert INTO nodelist VALUES(8,'H',7);  
    Insert INTO nodelist VALUES(9,'I',8);  
    Insert INTO nodelist VALUES(10,'J',8); 


CREATE FUNCTION `getChildList`(rootId INT) //rootId为你要查询的节点。
     RETURNS VARCHAR(1000)  
     BEGIN 
       DECLARE pTemp VARCHAR(1000);  
       DECLARE cTemp VARCHAR(1000);  //两个临时变量
      
       SET pTemp = '$';  
       SET cTemp =cast(rootId as CHAR);  //把rootId强制转换为字符。
      
       WHILE cTemp is not null DO  
         SET pTemp = concat(pTemp,',',cTemp);  //把所有节点连接成字符串。
         SELECT group_concat(id) INTO cTemp FROM nodelist   
         WHERE FIND_IN_SET(pid,cTemp)>0; 
                // FIND_IN_SET(str,strlist)的方法网上大把不解释。
       END WHILE;  
       RETURN pTemp;  
     END 
      

select  getChildList(5)

select * from nodelist t where  FIND_IN_SET(id, getChildList(3));




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

相关推荐

    MySQL递归查询

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

    mysql递归查询.txt

    mysql递归查询.txt,里面写了mysql递归查询的例子,方便需要的朋友使用,可读性强,简单实用

    mysql递归查询.doc

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

    两种mysql递归tree查询效率-mysql递归tree

    两种mysql递归tree查询效率-mysql递归tree,提供两种递归算法

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

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

    地区表MySql递归sql脚本

    地区表MySql递归sql脚本

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

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

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

    这里,我们将深入探讨如何使用递归查询来构建菜单树,并特别关注在MySQL和Oracle这两种广泛使用的数据库系统中的实现。 首先,我们要理解什么是递归查询。递归查询是一种在数据库中处理层次数据的方法,它通过自身...

    MySQL多种递归查询方法.docx

    手动实现 MySQL 递归查询 Oracle 递归查询 在 Oracle 中是通过 start with connect by prior 语法来实现递归查询的。 按照 prior 关键字在子节点端还是父节点端,以及是否包含当前查询的节点,共分为四种情况。 ...

    MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)

    MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身的查询,以便实现某些复杂的查询逻辑。在...

    mysql 递归

    用mysql实现oracle递归,通过with as 来实现

    MySQL递归查询树状表的子节点、父节点具体实现

    在MySQL中,处理树状结构的数据表时,由于不直接支持循环递归查询,因此需要采用一些特殊的技巧来实现对子节点和父节点的查找。本例中提到了两个存储过程,分别用于获取树状表中的子节点列表和父节点列表。 1. 获取...

    最新省市区联动查询,mysql数据全

    最新省市区联动SQL CREATE TABLE `regions` ( `id` int(6) UNSIGNED NOT NULL COMMENT '编号', `parent_id` int(6) NOT NULL DEFAULT 0 COMMENT '上级编号', `deep` tinyint(1) NOT NULL DEFAULT 0 COMMENT '层级...

    mysql递归调用获取树节点(子树)

    在提供的`mysql递归调用获取树节点(子树).doc`文档中,应该详细解释了这个过程,包括如何创建和执行存储过程,以及如何使用提供的测试数据。确保查看文档以获取完整的步骤和示例,以便在实际项目中成功应用这些...

    MySQL通过自定义函数实现递归查询父级ID或者子级ID

    在MySQL中,递归查询通常用于处理层次结构的数据,如组织结构、菜单系统或类别树等。当数据的层级关系无法预知或者可能无限深时,传统的JOIN操作可能无法满足需求,此时就需要自定义函数来实现递归查询。本文将详细...

    数据库设计之递归树查询

    本文将深入探讨如何通过递归查询来解决这类问题,并着重讲解使用`WITH`语句来实现递归查询的方法,适用于多种数据库系统,如MySQL、PostgreSQL、SQL Server等。 一、理解递归查询 递归查询是一种在数据库中遍历层级...

    利用java+mysql递归实现拼接树形JSON列表的方法示例

    本篇文章将详细讲解如何利用Java和MySQL递归地实现拼接树形JSON列表的方法。 首先,我们需要理解问题的整体思路。在数据库中,我们可以将每个分类(或节点)存储为一个记录,包含ID、父ID(PID)以及名称等字段。...

    SQL如何实现MYSQL的递归查询

    这里我们将探讨如何通过一条SQL语句来实现MySQL的递归查询。 首先,我们需要一个包含层级关系的表格,例如名为`treenodes`的表格,包含字段`id`(节点ID)、`nodename`(节点名称)和`pid`(父节点ID)。为了演示...

Global site tag (gtag.js) - Google Analytics