前言:
在大部分個專案中幾乎都涉及到選單的展示,在這裡普遍用到了樹形資料結構和遞迴演算法:
1.舉例:
建表:
(1)模擬效果圖:
(2)**片段:
2.資料庫中運用sql進行樹形查詢:
(1)mysql比較麻煩,稍後展開論述
(2)oracle樹形查詢:
使用start with...connect by子句遞迴查詢,一般用於乙個表維護樹形結構的應用。
建立示例表:
create table tbl_test
(id number,
name varchar2(100 byte),
pid number default 0
);插入測試資料:
insert into tbl_test(id,name,pid) values('1','10','0');
insert into tbl_test(id,name,pid) values('2','11','1');
insert into tbl_test(id,name,pid) values('3','20','0');
insert into tbl_test(id,name,pid) values('4','12','1');
insert into tbl_test(id,name,pid) values('5','121','2');
如圖:
從root往樹末梢遞迴
select * from tbl_test
start with id=1
connect by prior id = pid
如圖:
從末梢往樹root遞迴
select * from tbl_test
start with id=5
connect by prior pid = id
如圖:
行資料結構轉成樹形資料結構
背景 在前後端開發過程中,後端負責提供介面資料,有時前端需要把介面資料轉成其他的格式,本文就用於將具備父子邏輯的行資料轉成樹形結構。如下 function rowdatatotreedata roottreenode,rowdata else i i 1 if roottreenode.childr...
SQLServer樹形資料結構的資料進行資料統計
前言 前幾天朋友問我,關於sqlserver資料庫中對樹形結構的表資料統計問題,需求大致如下 分類表 遞迴資料 a的子分類是b,b的子分類是c 分類關係不間斷,a為第一層,b為第二層,c為第三層 需要統計 每個分類所在的層數 子分類的總數 和 子分類的層數 解決思路 建立示例表結構,如下 分類示例表...
樹形資料結構的級聯查詢(子查詢 遞迴)
說明 當一張表中同時存在id和pid parent id 我們需要用子連線查出其中的級聯關係,並將資料展示為多級列表 樹形資料結構 參考以下查詢的方法。查詢課程型別的樹形結構,多級選單資料 return treedata public ajaxresult gettreedata override ...