【发布时间】:2016-04-23 13:44:07
【问题描述】:
这是我的 MySQL 数据库表中的内容:
id | parent | name
----------------------
1 | null | Root 1
3 | null | Root 3
6 | 3 | something 1
7 | 6 | something 2
9 | 1 | something 3
我想从表格中取出最近的分支。现在我只检查最高的id 并在代码中按照项目到根目录。
在我的情况下,我可以假设最新条目始终是分支的尖端,而不是分支或根的中间。
我遇到的问题是获取特定根的最新版本。所以假设我想要根3 的最新分支。我该怎么做?
有没有一种方法可以在 SQL 中查询此内容,而无需在 PHP 中进行递归循环,直到找到我需要的内容?
目前不能选择更改树在 SQL 中的存储方式。 :(
【问题讨论】:
-
stackoverflow.com/questions/12796113/… 这可能会解决您的问题
-
不是,不是。根据您的建议,更改您的数据模型,或编写存储过程,或将表连接到自身,或使用应用程序级代码来处理递归。
标签: mysql recursion tree hierarchical-data recursive-query