mysql类似oracle的递归_使用MYSQL实现Oracle的Start with...Connect By递归树查询

本文介绍了如何在MySQL中实现类似Oracle的递归树查询,通过创建nodelist表并插入测试数据,然后定义getChildList()函数,利用WHILE循环和FIND_IN_SET函数达到递归效果。示例展示了查询节点1和节点3的所有子节点的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一篇文章,从某个同行问我的问题开始。

他的问题大概是这样的:自己已经用Oracle的Start with...Connect By实现了树的递归查询,但是现在要求变了,要用MYSQL也实现相同的递归查询树的功能。这个功能是我从以前从未使用到过的,于是,我上网查询、找了一些资料开始做了起来。我喜欢这种“自己每次在帮助了别人的同时又提高了自己”的进步,因为,我始终相信,会分享、会帮助别人的人注定海纳百川。到最后,功夫不多,总算给他提供了解决方案。我的解决方案只是针对同一个表,两个表只需要在方法里增加两个表的连接条件即可。

下面是我的一些MYSQL最终代码可供解决参考:

创建表nodelist:

CREATE TABLE nodelist(

id INT PRIMARY KEY,            //本节点ID。

nodename VARCHAR(20),           //节点名称,为方便辨别而已。

pid INT                         //父节点。

);

插入表测试数据:

Insert INTO nodelist VALUES(1,'A',null);  //父节点为,即根节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值