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