本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

2887

mysql8利用CTE特性实现递归查询

编程技术 | WangTwoThree | 2022-02-08 | 等你评论 | 0 次点赞

递归查询分为父子查询和子父查询。

父子查询:
根据父 id 查询下面所有子节点数据;

子父查询:
根据子 id 查询上面所有父节点数据;

下边就利用 mysql8 新增语法实现递归查询,表结构及数据如下图:

图片alt

父子查询:

with recursive r as
(
select id,name from c where id=1
union all
select c.id,CONCAT(r.name, '>', c.name) as name from c,r where r.id = c.ParentID
)
select id,name from r order by id;

查询结果如下:

图片alt

子父查询:

with recursive r as
(
select * from c where id =11
union all
select c.* from c,r where c.id=r.ParentID
)
select * from r order by id;

查询结果如下:

图片alt

via:
MySQL :: MySQL 8.0 Reference Manual :: 13.2.15 WITH (Common Table Expressions)
https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-recursive


猜你喜欢

暂无评论

有话要说

tips:首次评论须经过审核才会显示,请不要重复提交
本页二维码

扫码手机打开

浏览TOP5
热门标签
点赞TOP5
最新评论
别人在看