mysql 根据根节点通过 parent_id 关联递归查询出所有的子节点

2 篇文章 0 订阅

👑 博主简介:知名开发工程师
👣 出没地点:北京
💊 2023年目标:成为一个大佬
———————————————————————————————————————————
版权声明:本文为原创文章,如需转载须注明出处,喜欢可收藏!

一. 需求

仅仅是记录自己用到的知识点

数据库表结构:
在这里插入图片描述

二. 实现

SELECT
	t2.* 
FROM
	(
	SELECT
		@ids AS p_ids,
		(
		SELECT
			@ids := GROUP_CONCAT( pm_id ) 
		FROM
			di_pm 
		WHERE
		FIND_IN_SET( parent_id, @ids )) AS c_ids,
		@l := @l + 1 AS LEVEL 
	FROM
		di_pm,
		( SELECT @ids := '3800b47e0a26437b808fc711591d16a5', @l := 0 ) b 
	WHERE
		@ids IS NOT NULL 
	) t1
	JOIN di_pm t2 ON FIND_IN_SET( t2.pm_id, t1.p_ids )

三. 效果

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北京李嘉城

我的好兄弟啊,感谢大佬的火箭!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值