2011-03-22 112 views
0

由於它看起來像遞歸查詢在MySQL中是不可能的,我想知道是否有解決方案來獲取相同的信息,這也限制了我對數據庫進行查詢的次數。在我的情況下,我有什麼相當於一棵樹,並給予一個節點,我做一個路徑回到根,並保存節點的名稱,因爲我去。給定一個這樣的表格:PHP中的MySQL遞歸查詢替換

id | parent 
------------- 
1 | 
2 | 1 
3 | 1 
4 | 2 
5 | 2 
6 | 5 

我想選擇路徑從6回到1(6,5,2,1)的所有ids。由於路徑的總長度是未知的,我會假設唯一的方法是從一個查詢中獲取結果並構建一個新的查詢,直到我回到根。然而,自從我上次使用MySQL以來,這已經過去了幾年,所以如果我有點失去聯繫,這並不會讓我感到意外。任何幫助,將不勝感激。

+3

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html – 2011-03-23 00:02:57

+3

[也可以查看關於在關係數據庫中存儲分層數據的這個全面的前面的問題](http://stackoverflow.com /問題/ 4048151 /什麼,是最選項換存儲分層數據-IN-A的關係數據庫)。 – Charles 2011-03-23 00:06:06

回答

1

因爲它看起來像遞歸查詢中的MySQL是不可能的

MySQL不支持「CONNECT BY」運營商,真正的 - 但你可以實現使用MySQL和回報遞歸過程/函數結果集從他們。