欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Mysql树形结构表-查询所有父级数据(模糊查询)

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

2024/10/26 6:29:57 来源:https://blog.csdn.net/hwt1070359898/article/details/143203242  浏览:    关键词: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_timeFROM zhkt_course_chapterWHERE 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_timeFROM zhkt_course_chapter pINNER JOIN Ancestors a ON p.id = a.parent_id
    )
    SELECT DISTINCT * FROM Ancestors;
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com