日期:2014-05-16  浏览次数:20887 次

求1个怪异的SQL语句
有表如下,树形结构
Tree
---------------------
ID     ParentID     Name
1       0                   树叶A
2       1                   树叶B
3       1                   树叶C
4       1                   树叶D
5       2                   树叶E
6       2                   树叶F
7       3                   树叶G

ParentID为0的记录为 "根 "
ParentID为1的记录都是记录“树叶A”的孩子
ParentID为2的记录都是记录“树叶B”的孩子
依此类推就构造了一个树形结构,不限深度

要执行的操作是,用户给出一个关键字,就要在当前树和他的孩子中查询,由于是树形结构,现在用的是递归,效率非常低
示意代码如下
function   Search(pID,Text){
      SELECT   *   FROM   Tree   WHERE   Name   LIKE   Text   AND   ID=pID
     
      SELECT   ID   FROM   Tree   WHERE   ParentID=pID
      List=GetRow( "ID ")
     
      for   i=0   to   List.length
          Search(List(i),Text)
      next
}

请问大家有什么简便的办法吗?



------解决方案--------------------
树的操作,都要用递归方法,没有简便的办法。
------解决方案--------------------
没有其他简单办法。