簡體   English   中英

選擇一個由mysql中的鄰接表模型表示的任意深的樹嗎?

[英]SELECT an arbitrarily deep tree that is represented by the adjacency list model in mysql?

在mysql中,我有一棵用鄰接表模型表示的樹。

MYTREE
   id
   parent_id
   title

我想知道:

給定一個節點的ID,是否有任何方法可以選擇該節點下的整個樹,並提供深度信息? 這棵樹任意深,所以我不能說可能有多少層。 但是結果集可能看起來像這樣:

ID      TITLE     DEPTH
4       title1    1
8       title2    2
16      title8    3
9       title3    2
15      title4    3

我知道可以使用嵌套集模型來做到這一點。 但是關於嵌套集的某些事情並不理想,我希望不必切換。

謝謝你的建議!

簡短的回答:不。

遍歷用父指針表示的樹的唯一方法是在下一組之后跟隨一組父ID。 如果您可以限制深度,可以通過在表中簡單地多次連接來限制深度,但是深度不受限制,通常是應用程序側循環。

編輯:我沒有注意到標題中任意深的子句:

您可以編寫一個存儲過程來遞歸行。

但是,嵌套集的理想情況(至少不能通過插入觸發器或存儲過程來解決)嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM