当前位置: 首页 > article >正文

Mysql树形结构表-查询所有父级数据(模糊查询)

  •  表结构,这里只是个例子,所有的树形结构表均可用:
CREATE TABLE `zhkt_course_chapter` (
  `id` bigint NOT NULL COMMENT '唯一id',
  `course_id` bigint NOT NULL COMMENT '所属课程id',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
  `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父级id,根级父级为0,默认0',
  `status` int DEFAULT '0' COMMENT '状态:0正常,1禁用,默认0',
  `sort` int DEFAULT NULL COMMENT '排序字段',
  `deleted` tinyint DEFAULT '0' COMMENT '逻辑删除:0未删除,1删除,默认0',
  `version` int DEFAULT NULL COMMENT '版本',
  `create_by` bigint DEFAULT NULL COMMENT '创建者id',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='智慧课堂-课程章节表';
  1. 查询符合条件数据,包含模糊查询(模糊查出子集,再追查父级,直到根级):
    WITH RECURSIVE Ancestors AS (
        -- 初始查询,找到指定课程和名称的子节点
        SELECT 
            id,
            course_id,
            name,
            parent_id,
            status,
            sort,
            deleted,
            version,
            create_by,
            create_time,
            update_by,
            update_time
        FROM 
            zhkt_course_chapter
        WHERE 
            deleted = 0 AND course_id = "1840215851826491393" AND name LIKE "%章节名称1.1.2%" -- 这里替换为你要查找的课程ID和名称
        UNION ALL
        -- 递归查询,找到父节点
        SELECT 
            p.id,
            p.course_id,
            p.name,
            p.parent_id,
            p.status,
            p.sort,
            p.deleted,
            p.version,
            p.create_by,
            p.create_time,
            p.update_by,
            p.update_time
        FROM 
            zhkt_course_chapter p
        INNER JOIN 
            Ancestors a ON p.id = a.parent_id
    )
    SELECT DISTINCT * FROM Ancestors;
    

http://www.kler.cn/news/365060.html

相关文章:

  • 日常记录,使用springboot,vue2,easyexcel使实现字段的匹配导入
  • 鸿蒙到底是不是纯血?到底能不能走向世界?
  • 精益思维在新能源汽车研发中的应用体现
  • 线程本地变量-ThreadLocal
  • CSS3 动画相关属性实例大全(三)(columns、filter、flex、flex-basis 、flex-grow、flex-shrink属性)
  • Python异常检测- DBSCAN
  • Android14 和android12 在锁屏界面Keyguard输错5次密码后倒计时30秒时重启手机不显示倒计时
  • SOLIDWORKS正版软件的渠道分别是哪些,如何选择?
  • 使用RNN、LSTM和Transformer进行时间序列预测
  • AJAX 实例:深入解析与实战应用
  • 代码随想录算法训练营Day09 | 151.翻转字符串里的单词、卡码网:55.右旋转字符串、28. 实现 strStr()、459.重复的子字符串
  • AUTOSAR CP 中 BswM 模块功能与使用介绍(2/2)
  • python主流框架Django:ORM框架关联查询与管理器
  • 关于Linux自带的python2.6.6升级到2.7.5版本步骤详解
  • 在银河麒麟系统中Qt连接达梦数据库
  • Python爬虫:自动化获取商品评论数据
  • 纯血鸿蒙的未来前景
  • 7款视频转换器大测评!哪款是最适合你的视频格式转换器?
  • spring boot yml文件中引用*.properties文件中的属性
  • 雷池社区版那么火,为什么站长都使用雷池社区版??
  • 我们可以用微服务创建状态机吗?
  • 边缘计算路由网关R40钡铼技术3LAN口1WAN口Modbus协议
  • 系统架构设计师教程 第6章 6.4 应用程序域数据库的交互 笔记
  • ASP.NET Core 8.0 中使用 Hangfire 调度 API
  • Python中input()输入函数和print()输出函数的用法
  • 网络连接设备的功能与应用概述