mysql组织树遍历_mysql – SQL树遍历

我并不完全确定我这么说,但请耐心等待.

我想知道是否可以在SQL中执行类似的操作(特别是MySQL):

假设我们在下表中的数据库中保留了树状数据:

mysql> desc data_table;

+------------------------+---------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+------------------------+---------------------+------+-----+---------+----------------+

| id | int(10) unsigned | NO | PRI | NULL | auto_increment |

| parent_id | int(10) unsigned | YES | MUL | NULL | |

| value | text | YES | | NULL | |

因此每行都有一个父级,除了“根”行,每行除了叶子行外都有子级.

是否可以仅使用SQL查找任何给定行的所有后代?

解决方法:

可以仅使用SQL获取所有后代,但不能在单个查询中获取.但我相信你已经明白了;我假设你的意思是你想在一个查询中做到这一点.

您可能有兴趣阅读一些存储树结构的替代设计,这些设计使您能够使用单个SQL查询获取所有后代.见我的演讲Models for Hierarchical Data with SQL and PHP.

您还可以对其他品牌的数据库(例如PostgreSQL)使用递归SQL查询,但MySQL目前不支持此功能.

标签:sql,mysql,data-structures,tree,hierarchical-data

来源: https://codeday.me/bug/20190726/1545265.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值