CREATE DEFINER=`gsp`@`%` FUNCTION `FUN_GET_OFFICE_NODE`(`root_id` varchar(32), `root_grade` int) RETURNS varchar(32) CHARSET utf8
BEGIN
— 定义返回参数
declare return_id varchar(32);
— 自定义变量
declare temp_id varchar(32);
declare temp_grade int;
declare temp_parent_id varchar(32);
— 定义初始化参数
set temp_id = root_id;
set temp_grade = 9;
set temp_parent_id = ‘-1’;
— 循环查找对应节点信息
WHILE temp_grade > root_grade DO
if temp_parent_id = ‘-1’ then
select tof.id, tof.parent_id,tof.grade into temp_id,temp_parent_id,temp_grade from tt_office tof where 1=1 and tof.id = root_id;
else
select tof.id, tof.parent_id,tof.grade into temp_id,temp_parent_id,temp_grade from tt_office tof where 1=1 and tof.id = temp_parent_id;
end if;
end WHILE;
— 设置返回ID信息
set return_id = temp_id;
— 返回所需要的层级ID
RETURN return_id;
END