mysql根據子節點查詢父級節點

2021-10-16 17:48:35 字數 1214 閱讀 8690

表結構

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(id,name,parentid)value('11','二級選單','1');

insert into t_test(id,name,parentid)value('111','**選單','11');

insert into t_test(id,name,parentid)value('2','一級選單','0');

根據子節點查詢所有父級節點

select 

@r as _id,

(select name from t_test where id = _id) as name,

(select @r := parentid from t_test where id = _id) as parentid

from

(select @r := '111') temp,t_test a

where @r!=0

顯示結果

說明

1、表關聯時包含所有記錄(沒有關聯條件)

2、遍歷表關聯結果集時,第一次@r='111',通過【    (select @r := parentid from t_test where id = _id) as parentid 】子查詢將@r := parentid,所以當進行第二次時,@r=『11』,依次類推,最後通過 @r != 0 進行過濾

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...

根據子節點遞迴查詢所有父節點

有個需求,需要根據給定的子節點向上遞迴查詢所有父節點,網上查詢了一些,但是都不是很滿意,有的是需要用到全域性變數定義儲存列表,但是會有併發問題,然後自己手寫乙個 test void contextloads1 public listgetpid listidlist,integer pid,list...

mysql 根據id查所有父級或子級

查詢父級 select t2.jgid,t2.sjjgid t2.jgmc from select r as id,select r sjjgid from yygl jgxx where jgid id as 2v2,l l 1 as lvl from select r 09 vars,查詢id為...