MySQL 向下递归查询,完全的sql语句不用函数

				# 向下递归
				select
                    group_concat( ids._id )
                FROM
                (
                    SELECT
                    @r AS _id,
                    (
                        SELECT
                            @r := group_concat( c.id )
                        FROM
                            t_sys_material_category_copy1 a
                            LEFT JOIN t_sys_material_category_copy1 c ON a.id = c.id
                        WHERE
                            FIND_IN_SET ( a.parent_code, _id )
                    ) AS parent_id,
                    @l := @l + 1 AS lvl
                    FROM
                        ( SELECT @r := '123456', @l := 0 ) vars,
                        t_sys_material_category_copy1 b
                    WHERE
                    @r  != 0
                ) ids
				
				
				#向上递归
				SELECT
					GROUP_CONCAT( ids.id SEPARATOR "-" ) 
				FROM
					(
					SELECT
						T2.id
					FROM
						(
						SELECT
							@r AS _id,
							( SELECT @r := parent_code FROM t_sys_material_category_copy1 WHERE id = _id ) AS 2v2,
							@l := @l + 1 AS lvl 
						FROM
							( SELECT @r := '123456' ) vars,
							t_sys_material_category_copy1 h 
						WHERE
							@r != 0 
						) T1
						JOIN t_sys_material_category_copy1 T2 ON T1._id = T2.id 
					ORDER BY
						T2.id 
					) ids

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值