mysql 樹表查詢所有子節點

2021-10-08 14:56:47 字數 3055 閱讀 8712

create

table

ifnot

exists

`sys_dept`

(`id`

bigint(20

)not

null

auto_increment

comment

'部門id'

,`parent_id`

bigint(20

)default

'0'comment

'父部門id'

,`ancestors`

varchar(50

)default

''comment

'祖級列表'

,`name`

varchar(30

)default

''comment

'部門名稱'

,`order_num`

int(4)

default

'0'comment

'顯示順序'

,`leader`

varchar(20

)default

null

comment

'負責人'

,`phone`

varchar(11

)default

null

comment

'聯絡**'

,`email`

varchar(50

)default

null

comment

'郵箱',`

status

`char(1

)default

'0'comment

'部門狀態(0正常 1停用)'

,`del_flag`

char(1

)default

'0'comment

'刪除標誌(0代表存在 2代表刪除)'

,`create_userid`

bigint(20

)default

null

comment

'建立者,user表id'

,`create_username`

varchar(64

)default

''comment

'建立者,user表name,冗餘'

,`create_time`

datetime

default

null

comment

'建立時間'

,`update_userid`

bigint(20

)default

null

comment

'更新者,user表id'

,`update_username`

varchar(64

)default

''comment

'更新者,user表name,冗餘'

,`update_time`

datetime

default

null

comment

'更新時間'

,primary

key(

`id`))

engine

=innodb

default

charset

=utf8 comment

='部門表'

auto_increment

=105

;

insert

into

`sys_dept`

(`id`

,`parent_id`

,`ancestors`

,`name`

,`order_num`

,`leader`

,`phone`

,`email`,`

status`,

`del_flag`

)values

(100,0

,'0'

,'xx公司',0

,'張三'

,'15888888888'

,'***@xx.com'

,'0'

,'0'),

(101

,100

,'0,100'

,'財務部',1

,null

,null

,null

,'0'

,'0'),

(102

,100

,'0,100'

,'辦公室',2

,null

,null

,null

,'0'

,'0'),

(103

,100

,'0,100'

,'銷售1部',3

,null

,null

,null

,'0'

,'0'),

(104

,103

,'0,100,103'

,'銷售1部1科',1

,null

,null

,null

,'0'

,'0'

);

select

*from

`sys_dept`

where find_in_set(

'100'

,ancestors)

執行結果

執行結果

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

MySQL遞迴查詢所有子節點,樹形結構查詢

delimiter drop procedure if exists findlchild iid 遞迴父節點 layer 允許遞迴深度 create procedure findlchild iid bigint 20 layer bigint 20 begin 建立接受查詢的臨時表 create...