mysql 树结构表,通过函数更新祖级路径

mysql 树结构表,通过函数更新祖级路径

通过函数方式,更新mysql树形结构表,每个节点的祖级路径

表结构

create table sys_dept
(
    dept_id     varchar(50)             not null comment '部门id' primary key,
    parent_id   varchar(50) default '0' null comment '父部门id',
    ancestors   varchar(50) default ''  null comment '祖级列表',
    dept_name   varchar(50) default ''  null comment '部门名称',
)

function

drop function getDeptParentNodeList;
CREATE FUNCTION `getDeptParentNodeList`(`deptId` varchar(30)) RETURNS longtext CHARSET utf8
BEGIN
    DECLARE parentList longtext; # 返回父节点结果集
    DECLARE tempParent VARCHAR(1000); # 临时存放父节点

    SET parentList = '';
    SET tempParent = CAST(deptId as CHAR); # 将int类型转换为String

    WHILE tempParent != '0'
        DO
            SELECT parent_id INTO tempParent FROM sys_dept where dept_id = tempParent; # 查询节点上所有父节点
            SET parentList = CONCAT(tempParent,',',parentList); # 存入到返回结果中
        END WHILE;
    RETURN SUBSTRING(parentList, 1, length(parentList)-1);
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值