创建treeview循环查询

时间:2013-08-16 00:48:37

标签: mysql treeview

我设计了一个树视图结构如下: * parentID = 0表示树根

ID    parentID
1        0 
2        0  
3        1
4        1
5        1
6        3
7        4
8        5
9        5
10       5
11       2
12       2
13      10

当我传递" 1"的参数时它将在Root" 1",预期结果:

下返回所有内容的结果
ID  parentID
1        0
3        1
4        1
5        1
6        3
7        4
8        5
9        5
10       5
13      10

可以通过单个查询解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在您现在存储树的方式中,无法在一个纯SQL查询中获取整个树。您需要使用其他语言编写循环(C#,支持循环的存储过程,...)来获取树。

This是一篇很好的文章,描述了如何使用存储树的方式(包括获取树和从树中删除项目)。

更有趣的是,该文章还描述了一种在数据库表中存储树的方法, 允许在单个查询中获取整个树。它被称为pre-order tree traversal。您可以查找更多信息。我找到了C# implementation。它涉及的逻辑比你现在使用的方式更多,但除了最小的树之外,它们的性能更高。