表結構
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為...