`

MYSQL 查找所有的父级或子级(多级)

 
阅读更多
举例t_user 表是父子级关系, 有字段id 和 字段parent_id



查找父级例子
sql语句 查找所有父级(包含本身)


SELECT T2.t_id
FROM (
    SELECT
    @r AS _id,
    (SELECT @r := parent_id FROM t_user WHERE t_id = _id) AS parent_id,
    @l := @l + 1 AS lvl FROM (SELECT @r := 5, @l := 0) vars,
      t_user h WHERE @r <> 0 AND parent_id > 0
  ) T1 JOIN t_user T2 ON T1._id = T2.t_id ORDER BY T1.lvl DESC

上面5是传参数id



查找子级例子
第一种方式:
SELECT  DATA.id  FROM(
            SELECT
                @ids as _ids,
                (
                    SELECT @ids := GROUP_CONCAT(id) 
                    FROM t_user
                    WHERE FIND_IN_SET(parent_id, @ids)
                ) as cids,
                @l := @l+1 as level
            FROM t_user,
            (SELECT @ids :=#{id}, @l := 0 ) b
       
        ) id, t_user DATA
        WHERE FIND_IN_SET(DATA.id, ID._ids)
        ORDER BY  id
上面#{id}是传参数id



第二种方式(可能有点错误):
sql语句 查找所有子级(不包含本身)
SELECT t_id FROM
(
    SELECT * FROM t_user where parent_id > 0 ORDER BY parent_id, t_id DESC
  ) realname_sorted,
  (SELECT @pv :=1) initialisation
  WHERE (FIND_IN_SET(parent_id,@pv)>0 And @pv := concat(@pv, ',', t_id))
上面1是传参数id

分享到:
评论

相关推荐

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

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

    php获取子级,父级,无限极分类,带demo,效率超高

    php获取子级,父级,无限极分类,带demo,效率超高。下载请评价,谢谢!!!买到就是赚到,一直在用

    70、修复父评论删除时子评论同时删除的问题1

    - 创建或修改`CommentListener`类,添加`fixCommentTitleAndLevelWhenRemove()`方法,用于处理删除“父评论”后的逻辑。具体包括: - 获取当前评论对象的所有“子评论”对象。 - 遍历这些“子评论”,根据条件...

    Ztree+treeTable实现 Java实现 树形菜单 树形表格

    在Java项目中,我们通常会结合后台服务(如Spring MVC或Servlet)来动态生成Ztree的数据源,然后通过Ajax请求传递到前端进行渲染。 1. **Ztree的配置与使用**: Ztree的配置主要涉及JSON数据格式和HTML结构。你...

    03_MySQL 5.7 基于GTID的并行MTS多级主从 Multisource Crash safe半同步架构1

    MySQL 5.7 引入了全局事务标识符(Global Transaction Identifier, GTID)和多源复制(Multisource Replication)等高级特性,极大地增强了数据库的可扩展性和高可用性。以下是对这些知识点的详细解释: 1. **GTID*...

    bootstrap-treeview 实现的web后台管理 多级(无限级)分类菜单-springboot mybatis mysql

    bootstrap-treeview 实现的web后台管理常用到的左侧 多级(无限级)分类菜单-idea springboot mybatis mysql技术实现,完整的一个小实例,有效果图,数据库表字段,下载即可运行。

    mysql(多级分销)无限极数据库设计之嵌套集完整性程序源码和脚本,go增删改查

    mysql(多级分销)无限极数据库设计方案(邻接表,路径枚举,闭包表,嵌套集);前三种好理解,最后一种嵌套集设计需要程序维持完整性,这里着重讲解设计思路,并附有Golang实现的源码(增删改查),各位同仁可斟酌...

    php+ajax+mysql省市县三级联动(1张数据库).zip

    6. **数据库设计**: 为了实现三级联动,数据库设计需要合理,通常会有一个地区表,包含省份、城市和县的数据,它们之间可能存在父级-子级关系。例如,省份ID可以作为城市表的外键,城市ID又可以作为县表的外键。 这...

    修正了bug的php+mysql+jquery联动菜单

    在本例中,有三个级别的菜单,即父级、子级和孙子级。用户选择父级菜单后,对应的子级菜单会自动加载;继续选择子级,孙子级菜单也会相应地显示出来。 5. AJAX(Asynchronous JavaScript and XML):在jQuery中,...

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

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

    MySQL中的树状复制:构建多级数据同步架构

    在数据库的高可用和扩展性需求日益增长的今天,MySQL的树状复制(也称为级联复制或多级复制)成为了解决这些挑战的有效手段之一。树状复制通过在多个数据库实例之间建立复制链,实现了数据的多级同步,从而减轻了主...

    Web数据多级联动

    - `parent_id`: 父级区域ID,若为顶级则为0或其他特殊值。 ##### 2. PHP与jQuery结合实现前端动态加载 - **前端部分**:使用HTML与jQuery实现前端界面及事件监听。 - **后端部分**:使用PHP处理Ajax请求,并从...

    linux下彻底卸载mysql

    彻底卸载 Linux 下的 MySQL 需要完成五个步骤:查找以前是否装有 MySQL,停止 MySQL 服务和删除之前安装的 MySQL,查找之前老版本 MySQL 的目录并删除老版本 MySQL 的文件和库,删除 /etc/my.cnf 文件,和再次查找...

    mysql查找程序

    MySQL查找程序是一个非常实用的工具,它主要用于在不熟悉或大型的数据库中快速定位特定字符串出现的表和字段。在数据库开发和维护过程中,这样的工具能够极大地提高工作效率,尤其是在处理复杂的数据关系时。以下是...

    全国交全面的省市县地区名称mysql和mssql语句.zip

    5. **触发器**:可能包含触发器来确保数据一致性,例如当插入或更新地区信息时,自动维护父级和子级之间的关系。 对于开发人员来说,理解并正确使用这些SQL语句至关重要,因为它们将直接影响到应用程序如何检索和...

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

    通过递归查询,我们可以获取到所有级别的菜单项,包括它们的父级和子级。 在MySQL中,我们可以使用自连接来实现递归查询。假设我们有一个名为`menus`的表,包含`id`(主键)、`parent_id`(父菜单ID)和`name`...

    多级菜单实例 多级菜单实例 多级菜单实例

    5. 动态加载:为了优化性能,多级菜单的子级菜单通常只在需要时才加载,这种技术叫做懒加载。当用户展开一个菜单项时,前端通过Ajax请求获取对应的子菜单数据,然后动态渲染到页面上。 6. 兼容性与响应式设计:为了...

    多级目录的数据库设计

    在IT领域,数据库设计是一项至关重要的任务,尤其是在处理复杂数据结构时,如多级目录。多级目录数据库设计旨在提供一种灵活且可扩展的方式来存储和管理具有层级关系的数据,例如在论坛、文件系统或者电子商务网站的...

    省市区数据表mysql

    同时,为了保持数据一致性,可能会使用外键约束,防止删除父级记录(如省份或城市)时,导致子级记录(如城市或区域)成为孤儿。 在实际应用中,可能还会涉及数据导入、更新和查询的SQL语句示例。例如,导入数据时...

Global site tag (gtag.js) - Google Analytics