MySQL数据库借助物化路径数据结构存储树。如何选择给定节点的所有父节点?
我使用点'。'作为路径分隔符,数据库结构包括“级别”字段,用于指示树中节点的深度。
让我拥有那些树并且需要节点'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
脚本应返回:
a
a.b
a.b.d
a.d.d.e (optional)
如何在MySQL中做到这一点?
答案 0 :(得分:0)
我在question posted by @quambo找到了解决方案。这是:
SELECT * FROM table
WHERE ? LIKE id||%
ORDER BY path
Insted of'?'有必要将路径放置到给定节点。
SELECT * FROM table
WHERE 'a.b.d.e' LIKE id||%
ORDER BY path