news 2026/4/11 23:41:56

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/4/6 10:27:40

XGantt:Vue3技术栈下的甘特图组件深度应用指南

XGantt:Vue3技术栈下的甘特图组件深度应用指南 【免费下载链接】gantt An easy-to-use Gantt component. 持续更新,中文文档 项目地址: https://gitcode.com/gh_mirrors/gantt/gantt 在当今快速发展的项目管理领域,可视化工具已成为提…

作者头像 李华
网站建设 2026/4/11 13:42:04

3分钟快速诊断网络连接类型:解决游戏卡顿的终极指南

网络连接检测是解决游戏联机卡顿、实时通信中断的关键技术手段。当你遇到P2P连接失败、语音视频卡顿或远程控制延迟时,立即使用NatTypeTester工具进行快速诊断,5步解决网络穿透问题。 【免费下载链接】NatTypeTester 测试当前网络的 NAT 类型&#xff08…

作者头像 李华
网站建设 2026/4/10 20:51:25

如何快速掌握通达信数据读取?mootdx开源工具的终极指南

如何快速掌握通达信数据读取?mootdx开源工具的终极指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 通达信数据读取工具mootdx是一款基于Python的开源库,专为金融数据爱…

作者头像 李华
网站建设 2026/4/9 0:48:33

GitHub Releases发布Qwen3-VL-30B定制化模型版本

Qwen3-VL-30B:从感知到认知的视觉语言革命 在自动驾驶系统误读“施工绕行”标识、医疗AI因忽略病灶位置关系而漏诊的现实案例频发的今天,我们不得不承认:当前多数AI模型仍停留在“看见”,而非“理解”的阶段。图像识别准确率再高&…

作者头像 李华
网站建设 2026/4/5 5:37:38

Qwen3-VL-8B在智能客服中的落地实践:图像识别+文本交互

Qwen3-VL-8B在智能客服中的落地实践:图像识别文本交互在电商平台的售后咨询中,用户上传了一张手机屏幕布满裂痕的照片,附言:“这个还能保修吗?” 传统客服系统面对这张图只能沉默——它“看不见”图像内容,…

作者头像 李华
网站建设 2026/4/5 5:37:37

miniprogram-table-component:微信小程序表格组件的深度实践指南

miniprogram-table-component:微信小程序表格组件的深度实践指南 【免费下载链接】miniprogram-table-component 项目地址: https://gitcode.com/gh_mirrors/mi/miniprogram-table-component 在日常的小程序开发中,你是否经常遇到这样的场景&…

作者头像 李华