SQL: 如何select 物化路径中的所有父节点?

SQL: How to select all parent nodes in Materialized path?

MySQL数据库借助物化路径数据结构存储树。如何 select 给定节点的所有父节点?

我用点'.'作为路径分隔符,数据库结构包括 'level' 字段,指示树中节点的深度。

让我拥有那些树并需要节点的所有父节点 'a.b.d.e':

id | path
 a | a
 b |  a.b
 c |   a.b.c
 d |   a.b.d
 e |    a.b.d.e
 f |  a.f

脚本应该return:

a
a.b
a.b.d
a.d.d.e (optional)

如何在 MySQL 中做到这一点?

我在 中找到了解决方案。这是:

SELECT * FROM table
WHERE ? LIKE id||%
ORDER BY path

代替“?”有必要放置给定节点的路径。

SELECT * FROM table
WHERE 'a.b.d.e' LIKE id||%
ORDER BY path