欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL處理多級(jí)分類(lèi),查詢(xún)結(jié)果呈樹(shù)形結(jié)構(gòu)

 更新時(shí)間:2012年08月03日 17:23:37   作者:  
對(duì)于多級(jí)分類(lèi)常規(guī)的處理方法,很多程序員可能是用程序先讀取一級(jí)分類(lèi)記錄,然后通過(guò)一級(jí)分類(lèi)循環(huán)讀取下面的子分類(lèi)
這樣處理的弊端是:如果數(shù)據(jù)量大,子分類(lèi)很多,達(dá)到4級(jí)以上,這方法處理極端占用數(shù)據(jù)庫(kù)連接池
對(duì)性能影響很大。

如果用SQL下面的CTE遞歸處理的話(huà),一次性就能把結(jié)果給查詢(xún)出來(lái),而且性能很不錯(cuò)
比用程序處理(數(shù)據(jù)量很大的情況),臨時(shí)表性能更好,更方便
復(fù)制代碼 代碼如下:

with area as(
select *,id px,cast(id as nvarchar(4000)) px2 from region where parentid=0
union all
select a.*,b.px,b.px2+ltrim(a.region_id) from region a join area b on a.parentid=b.id
)select * from area order by px,px2


可以查詢(xún)出結(jié)果—-所有分類(lèi)及相應(yīng)分類(lèi)下子分類(lèi)
id title parentid
1 廣東省 0
2 廣州 1
3 白云區(qū) 2
4 深圳 1
5 湖南省 0
6 長(zhǎng)沙 5
7 株洲 5
復(fù)制代碼 代碼如下:

with area as(
select * from region where parentid=1
union all
select a.* from region a join area b on a.parentid=b.id
)select * from area

可以查詢(xún)出結(jié)果—-指定分類(lèi)及相應(yīng)分類(lèi)下子分類(lèi)
id title parentid
1 廣東省 0
2 廣州 1
3 白云區(qū) 2


性能分析:
對(duì)于一個(gè)3500條地區(qū)記錄的數(shù)據(jù)表,其中有省,市,縣3級(jí)
查詢(xún)用時(shí)要1秒,視覺(jué)上感覺(jué)有點(diǎn)點(diǎn)慢,但不影響
數(shù)據(jù)量不大的分類(lèi),使用絕對(duì)無(wú)壓力

相關(guān)文章

  • distinct 多列問(wèn)題結(jié)合group by的解決方法

    distinct 多列問(wèn)題結(jié)合group by的解決方法

    distinct 多列問(wèn)題 group by 解決
    2010-06-06
  • 詳解SQL中Group By的用法

    詳解SQL中Group By的用法

    GROUP BY 語(yǔ)句用于結(jié)合合計(jì)函數(shù),根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組,記下來(lái)通過(guò)本文給大家介紹SQL中Group By的用法,需要的朋友參考下吧
    2016-03-03
  • 設(shè)定sql server定期自動(dòng)備份數(shù)據(jù)庫(kù)

    設(shè)定sql server定期自動(dòng)備份數(shù)據(jù)庫(kù)

    設(shè)定sql server定期自動(dòng)備份數(shù)據(jù)庫(kù)...
    2007-01-01
  • 最新評(píng)論