Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql recursive

作者:烟寂断魂   发布日期:2026-05-13   浏览:77

WITH RECURSIVE category_tree AS (
    -- 基础查询:选择根节点
    SELECT id, name, parent_id, 0 AS level
    FROM categories
    WHERE parent_id IS NULL

    UNION ALL

    -- 递归部分:连接子节点
    SELECT c.id, c.name, c.parent_id, ct.level + 1
    FROM categories c
    INNER JOIN category_tree ct ON c.parent_id = ct.id
)

-- 查询递归结果
SELECT * FROM category_tree;

解释说明:

  • WITH RECURSIVE:用于定义一个递归公用表表达式 (CTE)。它允许我们在查询中引用自身,从而实现递归操作。
  • category_tree:这是递归 CTE 的名称,表示我们将构建的树状结构。
  • 基础查询:从 categories 表中选择所有没有父节点的记录(即根节点),并设置初始层级为 0。
  • 递归部分:通过自连接将每个子节点与其父节点关联起来,并递增层级。
  • 最终查询:从递归 CTE 中选择所有记录,展示完整的树状结构。

这个例子展示了如何在 MySQL 中使用递归查询来处理层次结构数据,例如分类或组织结构。

上一篇:mysql 查看当前连接数

下一篇:mysql 替换函数

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站