SQL處理多級分類,查詢結果呈樹形結構

2023-03-19 00:55:31 字數 1092 閱讀 7978

這樣處理的弊端是:如果資料量大,子分類很多,達到4級以上,這方法處理極端佔用資料庫連線池

對效能影響很大。

如果用sql下面的cte遞迴處理的話,一次性就能把結果給查詢出來,而且效能很不錯

比用程式處理(資料量很大的情況),臨時表效能更好,更方便

複製** **如下:

with area as(

select *,id px,cast(id as nvarchar(4000)) px2 from region where parentidzkplwtcd=0

union all

select a.*,b.px,b.px2+ltrim(adzkplwtc.region_id) from region a join area b on a.parentid=b.id

)select * from area orddzkplwtcer by px,px2

可以查詢出結果—-所有分類及相應分類下子分類

id title parentid

1 廣東省 0

2 廣州 1

3 白雲區 2

4 深圳 1

5 湖南省 0

6 長沙 5

7 株洲 5

複製** **如下:

with area as(

select * frdzkplwtcom region where parentid=1

union all

select a.* from region a join area b on a.parentid=b.id

)select * from area

可以查詢出結果—-指定分類及相應分類下子分類

id title parentid

1 廣東省 0

2 廣州 1

3 白雲區 2

效能分析:

對於一個3500條地區記錄的資料表,其中有省,市,縣3級

查詢用時要1秒,視覺上感覺有點點慢,但不影響

資料量不大的分類,使dzkplwtc用絕對無壓力

本文標題: sql處理多級分類,查詢結果呈樹形結構

本文地址: