MySQL --- 自定义函数获取部门层级名称

介绍

使用MySQL自定义函数,获取当前部门及上级所有部门的名称。

示例代码

向自定义函数传入子级部门id,自定义函数返回,子级部门名称及上级所有层级部门名称,以" / "分隔符分割。

(1)创建自定义函数

CREATE FUNCTION `read_group_names`(id int) RETURNS varchar(255)
begin
	declare s_parent_group_id int default 0;
	declare s_group_name text default '';
	declare s_group_names text default '';
	set s_parent_group_id=id;
	a:loop
		select parent_group_id,group_name into s_parent_group_id,s_group_name from sys_group where group_id=s_parent_group_id;
		if s_group_names='' 
		then 
		set s_group_names=s_group_name;
		else
		set s_group_names=concat(s_group_name,' / ',s_group_names);
		end if;
		if s_parent_group_id=0 then leave a;
		end if;
	end loop a;
	return s_group_names;
END

(2)使用自定义函数

方式1:直接调用

select read_group_names(11);

11是子级部门id。

方式2:含在查询语句中

select id,read_group_names(id) from sys_group;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值