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

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

父子查询:
根据父 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:
mysql8利用CTE特性实现递归查询 - 膨胀的面包
https://blog.wangtwothree.com/code/179.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值