news 2026/7/16 10:40:24

Mysql 8.0+ 的递归查询WITH RECURSIVE

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mysql 8.0+ 的递归查询WITH RECURSIVE

MySQL with Recursive是一种基于递归思想的MySQL查询方式,可以实现对数据的递归查询和处理,返回符合条件的数据,在MySQL 8.0版本中,该功能被正式引入。

这种递归查询方式用于单表自关联,可以应用在很多场景下,比如对于树形结构、层级结构的数据处理,以及对数据进行分类汇总等。比如在开发中常见的有部门层级查询,省市区结构查询。

一、基本递归语法
WITH recursive r as (
-- 递归基:由此开始递归
select id,parent_id,name from category where id = 1
union ALL
-- 递归步:关联查询
select c.id,c.parent_id,c.name
from category c inner join r
-- r作为父表,c作为子表,所以查询条件是c的parent_id=r.id
where r.id = c.parent_id
)
select id,parent_id,name from r

二、添加层级 path、与树形自关联结构(用部门id联结)

WITH RECURSIVE department_tree (department_id, department_name, parent_department_id, depth, path) AS (
SELECT
department_id,
department_name,
parent_department_id,
1 AS depth,
CAST(department_id AS CHAR(200)) AS path
FROM company_department
WHERE parent_department_id IS NULL
UNION ALL
SELECT
cd.department_id,
cd.department_name,
cd.parent_department_id,
dt.depth + 1 AS depth,
CONCAT(dt.path, ',', cd.department_id) AS path
FROM company_department cd
JOIN department_tree dt ON cd.parent_department_id = dt.department_id
)
SELECT
department_id, department_name, parent_department_id, depth, path
FROM department_tree
ORDER BY path;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 10:05:18

PySide6 的 QSettings简单应用学习笔记

QSettings 是 PySide6 中用于持久化存储设定的类,会自动将应用的配置数据保存到系统对应位置(Windows 注册表、macOS/iOS 的 plist 文件、Linux 的配置文件),无需手动管理文件路径。QSettings 的核心价值是 “跨平台 简化持久化存…

作者头像 李华
网站建设 2026/7/16 12:24:15

使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成

使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成 在今天的开发实践中,一个常见的场景是:运维工程师需要快速写一个脚本合并多个CSV文件并导出为Excel——这本不该耗费太多精力,但手动编写、调试、验证的过程依然琐碎且易错。如果能用…

作者头像 李华
网站建设 2026/7/10 1:57:38

谷歌学术镜像网站资源助力gpt-oss-20b研究论文查阅

gpt-oss-20b 与学术镜像:开源大模型研究的双轮驱动 在生成式AI迅猛发展的今天,大型语言模型已成为科研、教育和产品开发的核心工具。然而,GPT-4等主流闭源模型虽然能力强大,却因其高昂的推理成本、封闭的权重体系以及对云端服务的…

作者头像 李华
网站建设 2026/7/16 0:04:03

抖音直播内容高效保存指南:告别错过精彩瞬间的烦恼

抖音直播内容高效保存指南:告别错过精彩瞬间的烦恼 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为错过精彩的抖音直播而懊恼吗?看着心仪主播的直播内容在结束后消失无踪&#…

作者头像 李华
网站建设 2026/7/14 21:21:59

泉盛UV-K5/K6对讲机LOSEHU固件:5大升级功能与终极配置方案

还在为对讲机原厂固件的功能限制而苦恼吗?泉盛UV-K5/K6对讲机LOSEHU固件为业余无线电爱好者提供了全新的解决方案,通过深度优化硬件性能和扩展专业功能,让普通对讲机变身专业通信设备。这款固件不仅解决了原版固件的诸多痛点,更为…

作者头像 李华
网站建设 2026/7/15 13:29:55

跨平台应用性能深度剖析:Electron 与开源鸿蒙(OpenHarmony)在真实业务场景下的资源调度、启动效率与能效表现对比

跨平台应用性能深度剖析:Electron 与开源鸿蒙(OpenHarmony)在真实业务场景下的资源调度、启动效率与能效表现对比 引言:当“跨平台”不再只是口号,性能成为落地的试金石 在信创工程全面铺开的 2025 年,“跨…

作者头像 李华