mysql 递归查找父节点_MYSQL递归查询所有父节点

1、表结构:

CREATE TABLE `t_busi_system` (

`ID` varchar(64) NOT NULL COMMENT '标识',

`PARENT_ID` varchar(64) DEFAULT NULL COMMENT '父id',

`CREATE_DATE` varchar(64) DEFAULT NULL COMMENT '创建时间',

`CREATE_USER_ID` varchar(64) DEFAULT NULL COMMENT '创建人id',

`CREATE_USER_NAME` varchar(64) DEFAULT NULL COMMENT '创建人姓名',

`LAST_UPDATE_DATE` varchar(64) DEFAULT NULL COMMENT '最后更新时间',

`LAST_UPDATE_USER_ID` varchar(64) DEFAULT NULL COMMENT '最后更新人id',

`LAST_UPDATE_USER_NAME` varchar(64) DEFAULT NULL COMMENT '最后更新人姓名',

`SYSTEM_NAME` varchar(255) DEFAULT NULL COMMENT '系统名称'

PRIMARY KEY (`ID`)

)

2、SQL:

SELECT T2.id, T2.SYSTEM_NAME

FROM (

SELECT

@r AS _id,

(SELECT @r := parent_id FROM T_BUSI_SYSTEM WHERE id = _id) AS parent_id,

@l := @l + 1 AS lvl

FROM

(SELECT @r := '065efb0ee42e4c77a401bcf0f3eccf20', @l := 0) vars,

T_BUSI_SYSTEM h

WHERE @r <> 0) T1

JOIN T_BUSI_SYSTEM T2

ON T1._id = T2.id

ORDER BY T1.lvl DESC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值