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

2021-09-13 11:08:40 字數 1769 閱讀 4220

--查詢父級

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為5的所有上級

yygl_jgxx h

where @r <> -1) t1

join yygl_jgxx t2

on t1._id = t2.jgid

order by jgid asc;

--查詢子級 ,儲存過程+臨時表

delimiter ;;

create definer=`root`@`localhost` procedure `findorglist`(in orgid varchar(20))

begin

drop temporary table if exists tmp_org;

-- 建立臨時表

create temporary table tmp_org(org_id varchar(20));

-- 清空臨時表資料

delete from tmp_org;

-- 發起呼叫

call findorgchildlist(orgid);

-- 從臨時表查詢結果

select org_id from tmp_org order by org_id;

end;;

delimiter ;

delimiter ;;

create definer=`root`@`localhost` procedure `findorgchildlist`(in orgid varchar(20))

begin

declare v_org varchar(20) default '';

declare done integer default 0;

-- 查詢結果放入游標中

declare c_org cursor for select d.jgid

from `yygl_jgxx` d

where d.`sjjgid` = orgid;

declare continue handler for not found set done=1;

set @@max_sp_recursion_depth = 10;

-- 傳入的組織id寫入臨時表

insert into tmp_org values (orgid);

open c_org;

fetch c_org into v_org;

while (done=0)

do-- 遞迴呼叫,查詢下級

call findorgchildlist(v_org);

fetch c_org into v_org;

end while;

close c_org;

end;;

delimiter ;

mybaits呼叫

mysql> call `findorglist`('00')

教育網研究 根據一級id顯示下面所有級id

string thirdid dbo.nextid 7 thirdid為11,12,13,14,34,多了乙個逗號,下面藍色的部分是進行處理 string hqldown from source inf where in thirdid.substring 0,thirdid.length 1 or...

根據元素ID遍歷樹形結構,查詢到所有父元素ID。

iveiw cascader 級聯選擇 元件 v model的資料是乙個陣列型別,工作中如果需要回顯的話,就需要傳遞所有父級元素的id所組成的陣列,但是後台只存放了目標元素的id,所以只能自己去遍歷資料獲取了。綜上所述,需求確定了,就是 根據元素id遍歷樹形結構,查詢到所有父元素id。下面是資料結構...

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