MySQL 遞迴查詢 當前節點及子節點

2021-06-18 11:10:44 字數 1528 閱讀 5823

1.表結構

2.查詢語句

create

procedure

pro_getunderorg(

inidd

varchar

(36

))begin

declare

lev

int;

setlev

=1

;drop

table

ifexists

tmp1;

create

table

tmp1(id

varchar

(36

),orgname

varchar

(50

),parentid

varchar

(36

) ,levv

int);

insert

tmp1

select

id,orgname,parentid,

1

from

`organization`

where

parentid

=idd;

while

row_count()

>

0

doset

lev=

lev+

1

;insert

tmp1

select

t.id,t.`orgname`,t.`parentid`,lev

from

organization t

join

tmp1 a

ont.parentid

=a.id

andlevv

=lev

-1

;endwhile

;insert

tmp1

select

id,orgname,parentid,

0

from

`organization`

whereid=

idd;

select

*from

tmp1;

end;

3,呼叫

call pro_getunderorg(

'9b2ae044-3b51-47fa-a24c-8326ba7b9fd3');

4,注意: 這種表設計以後一定要加個 路徑字段 以後就不用這麼費事了,直接 like 查詢了

Mysql 遞迴查詢子節點

查詢父編碼及以下所有子節點 select id from select t1.id,t1.parent id,if find in set t1.id,pids 0,pids,if find in set t1.parent id,pids 0,pids concat ws pids,id 0 as...

mysql 遞迴查詢選單節點的所有子節點

背景 專案中遇到乙個需求,要求查處選單節點的所有節點,在網上查了一下,大多數的方法用到了儲存過程,由於線上環境不能隨便新增儲存過程,因此在這裡採用類似遞迴的方法對選單的所有子節點進行查詢。準備 建立menu表 create table menu id int 11 not null auto inc...

mysql 遞迴查詢選單節點的所有子節點

建立menu表 create table menu id int 11 not null auto increment comment 選單id parent id int 11 default null comment 父節點id menu name varchar 128 default nul...