例如,我的表如下所示:
| ID (This is primary key) | parent (this refers to other rows in this table) |
|--------------------------|--------------------------------------------------|
| 1 | NULL |
| 2 | 3 |
| 3 | 1 |
有没有可能有一个mysql查询,它会返回所有父级的层次结构,直到它达到NULL?
例如,如果我要第2行的父母,我想得到第2行,然后是第3行和第1行。
(顺便说一句,我希望我的表有多个父级为NULL的行)。
这是可能的吗,如果是,怎么做?
2条答案
按热度按时间6jygbczu1#
在MySQL 8.0 recursive queries之前,你不能轻易做到这一点。
我在2017年4月的Percona Live会议上做了一个演示,展示了如何做到这一点。
您还可以看到:
klsxnrf12#
使用您选择的表示树的结构,无法从mysql中的单个查询中获取层次结构。您可以切换到oracle(在google中搜索“oracle connect by”),或者使用不同的数据结构(邻接列表),或者运行不确定数量的查询。