【问题标题】:Generate breadcrumb from database从数据库生成面包屑
【发布时间】:2010-11-08 20:39:24
【问题描述】:

我有数据表

 id       parent    order   tab       desc
------------------------------------------------------------------------
    1        Null   1   False       abcdef
    2       Null    2   False       efgh
    3       1       1   False       sadad
    4       1       2   False       aasd
    5       3       1   True        qwer
    6       3       1   True        asdad
    7       5       1   False       zxzc
    8       5       2   False       okli

此表包含所有带有子部分的页面的数据,标签列表示它是该页面上的标签,但不是新页面

我想使用这些数据生成 xml 并生成面包屑,我该如何使用这些数据来实现呢?

【问题讨论】:

    标签: .net asp.net sql-server sql-server-2005 sql-server-2008


    【解决方案1】:

    对于面包屑,您需要像这样使用递归 CTE:

    ;with Tree as
    (
       select CONVERT(varchar(100), id) as Path, id
       from Tbl
       where Tbl.Parent is null
    
       union all
    
       select Tree.Path + ' > ' + id as Path, id
       from Tbl
    
            inner join 
            Tree
            on Tree.id = Tbl.Parent
    )
    
    select * from Tree
    

    此处的面包屑只是每一行的 id,但您可以将其更改为您想要的任何列(还可以在结果集中包含您想要的任何其他列)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多