有個需求,需要根據給定的子節點向上遞迴查詢所有父節點,網上查詢了一些,但是都不是很滿意,有的是需要用到全域性變數定義儲存列表,但是會有併發問題,然後自己手寫乙個
@test
void contextloads1()
public listgetpid(listidlist,integer pid,listschools)
return idlist;
}
結果為:
[6, 4, 3, 2, 1]
符合期望
,還有一種方法就是直接在資料庫中寫乙個遞迴的函式,這也是可行的,
begin
declare idstr varchar(2048);
declare childidstr varchar(2048);
set idstr = '$';
set childidstr = cast(orgid as char);
while childidstr is not null do
set idstr = concat(idstr, ',', childidstr);
select group_concat(pid) into childidstr from school where find_in_set(id, childidstr) > 0;
end while;
return idstr;
end
函式名以及傳入和返回引數:
返回的是這樣的結果
$,6,4,3,2,1
後續可以自己 MySQL中根據父節點查詢其所有子節點
drop function if exists fun get children delimiter create definer root 127.0.0.1 function fun get children i id int 32 returns varchar 20000 charset u...
mysql根據子節點查詢父級節點
表結構 create table t test id varchar 64 name varchar 64 parentid varchar 64 基礎資料 insert into t test id,name,parentid value 1 一級選單 0 insert into t test i...
獲取某個父節點下面的所有子節點(遞迴查詢)
1.建立乙個list集合,集合裡面包括父節點和子節點 建立乙個list集合,集合裡面包括所有父節點和子節點 public static void main string args 子節點 static list childmenu new arraylist 2.獲取某個父節點下面的所有子節點 pu...