【发布时间】:2010-04-29 14:10:33
【问题描述】:
是否可以在 SQL 中创建“树解析器”?
我有一张桌子:
ID Name Parent
1 a
2 b 1
3 c 1
4 d 3
现在我想要一个返回的 SQL 查询:
ID PATH
1 /a
2 /a/b
3 /a/c
4 /a/c/d
这可以通过 SQL 实现吗?它会让我做很多事情变得更容易。任何帮助将不胜感激!
【问题讨论】:
-
这可能是可能的,但语法会因 SQL 品牌而异,并且可能并非在所有品牌中都可能。你在用什么? MySQL?甲骨文?微软 SQL?一个好的起点是在 google 上查找“递归 SQL”或“递归 SQL 查询”,但请注意解决方案可能特定于特定品牌的 SQL。
-
我正在使用 DB2。有趣的是没有通用的解决方案。
-
一般的解决方案是将路径存储在数据库中。谷歌
materialized path. -
问题是:我正在处理一个现有项目,该项目用于在 SELECT * 之后使用程序逻辑创建这些路径。我只是想:“这太可怕了。这应该由数据库处理。”不幸的是,我无法对数据库进行任何更改。