【发布时间】:2016-12-13 04:38:41
【问题描述】:
我有一张这样的桌子:
parent, child
0 2
0 8
2 3
2 6
3 4
3 5
6 7
6 9
9 10
我正在寻找一个查询来选择给定父级的子树,即如果给定父级是“6”,则输出必须是:{10,9,7,6}
【问题讨论】:
-
MySQL 不支持递归查询,理想情况下您可以使用递归查询来解决此类问题。树可以有多深,最大深度是固定的吗?
-
它不是深度固定的,但我认为不超过 6 级深度。很遗憾听到 MySQL 不支持递归查询 D:!
-
如果您可以接受,您可以进行 5 次自我加入。
-
当然,来自 PHP 的递归查询是没有问题的。使用固定的最大长度,您也可以在列中执行此操作。
-
考虑使用 MariaDB 10.2 或 MySQL 8.0.x 的 CTE
标签: mysql sql database tree mariadb