我有設置這樣的材料表的議案:
項目 - 父使用MySQL查詢遍歷行進行遞歸樹
最終的結果,當我顯示的材料清單,它顯示是這樣的:
item 1 - parent 0
item 2 - parent 1
item 3 - parent 1
最終的結果也可能是多層次是這樣的:
item 3 - parent 0
item 4 - parent 3
item 76 - parent 3
它能夠成爲一種循環往復:
item 76 - parent 0
item 46 - parent 76
item 46 - parent 0
item 25 - parent 46
現在,我要麼只是從數據庫中獲取1級:
SELECT * FROM bom WHERE parentId = $itemId (shorthand)
或者從表中拉每一行,用我的遞歸函數,只是我需要的那些梳理,但是這顯然效率很低,因爲我可能只需要10行,但是我拉了10,000條記錄。遞歸函數的輸出將只是創建樹是這樣的:
item 1
item 2
item 3
item 4
item 76
item 46
item 25
我所知道的是,我開始的第1項第5項可能有11父;他們不必順序。我想讓樹中的所有孩子分支。我怎麼能在MySQL中做這個查詢?
優秀的程序。但是,然後'SELECT ID,GetFamilyTree(id)FROM pctable;'拋出一個錯誤:_ERROR 1292(22007):截斷不正確的DOUBLE值:'4,5'_。我試圖調試它,但徒勞無功。你有什麼想法嗎?謝謝 – idok