mysql递归增加层次码

mysql父子关系递归查询增加层次码。

例子:

已有字段id,parentid.

需要增加字段内容:

101

102

10101

10102

10201

10202

1020201

代码:

with recursive my_tree as

(SELECT id,parentid,1 as n,cast('0' as char(50)) tree,cast(concat('1',lpad(@rn:=@rn+1,3,'0')) as char(50)) tree_id

FROM ex,(select @rn:=0) r

WHERE parentid='0' -- :starting_id

UNION ALL

SELECT d.id,d.parentid,n+1,lpad(d.tree,3,'0'),concat(tree_id,lpad(d.tree,3,'0'))

FROM (select id,parentid,ROW_NUMBER()over(PARTITION by parentid) tree from ex ) d

INNER JOIN tree st ON d.parentid = st.id

)

select * from my_tree

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值