`
wangzi6hao
  • 浏览: 211869 次
  • 性别: Icon_minigender_1
  • 来自: sdf
社区版块
存档分类
最新评论

mysql根据父id得到所有子id mysql树得到子id

    博客分类:
  • Sql
阅读更多
/*
id为自身id
pid为父id
*/
CREATE FUNCTION `getTreeChlid`(rootId INT) RETURNS varchar(1000) CHARSET utf8
BEGIN
    DECLARE sTemp VARCHAR(1000);/*定义一个临时字段来存放所有的类别与子类别*/
    DECLARE sTempChd VARCHAR(1000);/*定义一个临时字段,来得到当前类别的子类别*/

    SET sTemp = '$';
    SET sTempChd =CAST(rootId as CHAR);

    WHILE sTempChd is not null DO
        SET sTemp = CONCAT(sTemp,',',sTempChd);/*将以前类别与现在查询类别进行合并*/
        /*将每次查到的子id形成一个字符组,放到sTempChd里,如果sTempChd为null就停止循环*/
        SELECT GROUP_CONCAT(id) INTO sTempChd FROM webSys_adminMenu where FIND_IN_SET(pid,sTempChd)>0;
    END WHILE;
    RETURN sTemp;
END;

 测试:
select getTreeChlid(0);

分享到:
评论

相关推荐

    删除数据库表中的父节点以及其子节点

    在数据库中,我们可以通过一个字段(如`parent_id`)来标识父节点与子节点的关系,其中父节点的`id`作为子节点的`parent_id`。 要删除一个父节点及其所有子节点,我们需要进行深度优先搜索(DFS)或广度优先搜索...

    树父节点递归获取树子节点

    使用这个工具类时,只需要创建一个树结构,然后调用 `TreeUtils.getAllChildren(rootNode)` 即可得到从指定父节点开始的所有子节点。这种方法的时间复杂度是 O(n),其中 n 是树的节点总数,因为每个节点只被访问一次...

    mysql的插入问题 怎么获得自动增长的ID

    ### MySQL的插入问题:如何获取自动增长的ID 在MySQL中,经常需要用到自动增长的ID字段作为表的主键,特别是在频繁进行数据插入操作时。本文将深入探讨以下几个方面: 1. **理解自动增长ID的工作原理** 2. **在...

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

    这里我们假设有一个名为`get_subtree`的函数,它接受一个节点ID作为参数,返回该节点及其所有子节点的列表。以下是一个可能的函数实现: ```sql DELIMITER // CREATE FUNCTION get_subtree(p_id INT) RETURNS TEXT ...

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

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

    mysql雪花算法生成唯一整型ID主键的实现方法

    MySQL 雪花算法生成唯一整型ID主键的实现主要针对大数据环境下,需要大量生成全局唯一ID的需求。雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性...

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

    在MySQL中,可以创建一个名为`getChildLst`的存储函数,它接收一个根节点ID作为参数,并返回一个包含所有子节点ID的字符串。这个函数使用了一个`WHILE`循环,每次迭代都将当前节点的子节点ID添加到结果字符串中,...

    Mysql 查询根节点下所有叶子节点

    1、SELECT * FROM ( SELECT d.id, ( SELECT count( 1 ) FROM t_tree dd WHERE dd.parent_uuid = d.id ) AS count ... t3.id NOT IN ( SELECT t1.id FROM t_tree t1, t_tree t2 WHERE t1.id = t2.parent_uuid )

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

    在MySQL数据库中,处理层级关系数据,如组织结构、菜单系统或分类树等,常常需要进行递归查询来获取树状结构的子节点。这里我们将深入探讨如何在MySQL中使用存储过程来实现这一功能。 首先,为了理解这个过程,我们...

    Python3 操作 MySQL 插入一条数据并返回主键 id的实例

    在Python3中操作MySQL数据库并插入一条数据,然后获取并返回这条数据的主键id是数据库编程中常见的需求。这一过程可以分为几个关键步骤:数据库连接、执行插入操作、获取主键id以及事务提交。下面详细说明每个步骤...

    Mysql(序列/ID)生成方案

    在MySQL数据库中,序列或ID生成方案是数据库设计的关键部分,尤其对于高并发系统而言,高效且无冲突的ID生成机制至关重要。本方案主要探讨如何在MySQL中实现一个可靠的序列/ID生成策略,以满足并发处理的需求。 ...

    mysql innodb类型数据库表 根据ibd文件获取表 space id

    mysql innodb类型数据库表 根据ibd文件获取表 space id,用于恢复innodb类型数据表数据

    基于MySQL的ID生成器idgo.zip

    idgo是一个利用MySQL批量生成ID的ID生成器, 主要有以下特点:每次通过事务批量取ID,性能较高,且不会对MySQL造成压力.当ID生成器服务崩溃后,可以继续生成有效ID,避免了ID回绕的风险.业界已经有利于MySQL生成ID的方案,...

    mysql子查询的用法

    MySQL子查询是数据库查询中的一个重要概念,它允许在SQL语句内部嵌套其他查询,用于检索、比较或操作数据。子查询可以理解为一个独立的查询结果,它被用作外部查询的一部分,提供了灵活的数据处理能力。在本篇文章中...

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

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

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

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

    使用递归删除树形结构的所有子节点(java和mysql实现)

    使用递归删除树形结构的所有子节点(java和mysql实现) 在树形结构中删除某个父节点时,需要递归删除其所有子节点,以避免遗留冗余数据。下面将为大家介绍使用 Java 和 MySQL 实现递归删除树形结构的所有子节点的...

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

    `getChildNode`函数通过递归方式构建一个包含所有子节点`subCode`的字符串,而`getChildNodeParent`函数则根据给定的`sub_code`查询数据库,返回与之相关的子节点列表。 #### 性能优化 对于大型树形结构,频繁的...

    Mysql全局ID生成方法

    在单表/数据库数据量过大,更新量不断飙涨时,MySQL DBA往往会对业务系统提出sharding的方案。既然要sharding,那么不可避免的要讨论到sharding key问题,在有些业务系统中,必须保证sharding key全局唯一,比如存放...

Global site tag (gtag.js) - Google Analytics