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

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. 查询子集sql,包含自己:
    WITH RECURSIVE chapter_tree AS (SELECT id, parent_id, nameFROM zhkt_course_chapterWHERE id = 1833077834931814401 -- 这里替换为具体的ID值UNION ALLSELECT c.id, c.parent_id, c.nameFROM zhkt_course_chapter cJOIN chapter_tree ct ON c.parent_id = ct.idWHERE c.deleted = 0 -- 假设只查询未被逻辑删除的记录
    )
    SELECT * FROM chapter_tree;
  2. 查询子集sql,不包含自己:
    WITH RECURSIVE chapter_tree AS (-- 种子部分:从给定ID开始SELECT id, parent_id, nameFROM zhkt_course_chapterWHERE id = 1833078203409809409 -- 这里替换为具体的ID值UNION ALL-- 递归部分:查找子节点SELECT c.id, c.parent_id, c.nameFROM zhkt_course_chapter cJOIN chapter_tree ct ON c.parent_id = ct.idWHERE c.deleted = 0 -- 假设只查询未被逻辑删除的记录
    )
    -- 最终查询:选择所有子节点,但排除初始ID
    SELECT * FROM chapter_tree
    WHERE id != 1833078203409809409; -- 排除初始ID
http://www.lryc.cn/news/435979.html

相关文章:

  • Vue 3 Composition API进阶指南
  • C++学习,多继承
  • 苹果研究人员提出了一种新颖的AI算法来优化字节级表示以自动语音识别(ASR),并将其与UTF-8表示进行比较
  • 2024年重磅报告!国内AI大模型产业飞速发展!
  • Sentinel 安装
  • 大佬,简单解释下“嵌入式软件开发”和“嵌入式硬件开发”的区别
  • 04 奇偶分家
  • 普通人秒变AI专家:李沐创业同款RAG微调实战,打造专属外卖评论大模型
  • 微模块冷通道动环监控:智能化数据中心管理利器@卓振思众
  • 【Linux】进程调度与切换
  • SAM 2:分割图像和视频中的任何内容
  • 【免越狱】iOS任意版本号APP下载
  • 告别植物神经紊乱,这5种运动让你身心平衡,活力满满!‍♀️✨
  • 又一个iPhone时代开始
  • 在 CentOS 中永久关闭防火墙的步骤
  • 【数据库】详解基本SQL语句用法
  • R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析
  • 数学建模笔记—— 非线性规划
  • JavaScript中的控制流语句:break、continue、return、throw
  • 移动通信为啥要用双极化天线?
  • C语言从头学59——学习头文件math.h(二)
  • Leetcode 3283. Maximum Number of Moves to Kill All Pawns
  • 智能物流新“黑神话”:各位“天命人”,这份行业应用锦集请收下!
  • SpringSecurity原理解析(五):HttpSecurity 类处理流程
  • C++系列-匿名对象
  • tofixed和math.round什么区别
  • OPENAIGC开发者大赛高校组金奖 | 基于混合大语言模型与多模态的全过程通用AI Agent
  • MySql批量迁移数据库
  • 一、selenium自动化简介selenium工具集
  • CCF推荐B类会议和期刊总结:(计算机网络领域)