我想要從樹的根節點獲取路徑。這是我的例如樹:用純MySQL獲取樹的根路徑
id | name | parent_id
------------------------------
1 | mike | 0
2 | danny | 1
3 | peter | 1
4 | clark | 2
5 | lily | 1
6 | stefan | 3
7 | simon | 3
8 | boby | 1
9 | john | 4
10 | elly | 4
我寫PHP與MySQL的algoritm但慢慢
public function GetRootPath($a_id) {
$root="";
$results="";
while(1==1){
$result = DB::select("SELECT id, parent_id FROM users WHERE id=$a_id");
if($result[0]->refr!=0) {
if($root==""){
$root=$result[0]->parent_id;
}
else {
$root=$result[0]->parent_id.'.'.$root;
}
$a_id=$result[0]->parent_id;
}
else {
break;
}
}
return $root;
}
怎麼會這樣在單純的MySQL寫?我不太瞭解MySQL的程序和功能。
可能切換到一組嵌套 – Strawberry
組嵌套有利於與固定深度樹,礦山是非常動態的(查詢系統)。 – vinsa
爲什麼嵌套集合適用於固定深度的樹木?我會認爲相反的是真的!?!?! – Strawberry