SQL级联展示父级名称

前言

数据库是这样结构:

例:我想通过降血压药的parent_id展示父级的药品信息----西药/心血管系统用药/降血压药

sql展示:

WITH RECURSIVE category_path AS (  
    SELECT   
        id,   
        category_name,   
        parent_id,   
        CAST(category_name AS CHAR(255)) AS path  
    FROM   
        config_drug_category  
    WHERE   
        id = #{id}  -- 从'强心药'的id开始  
    UNION ALL  
    SELECT   
        c.id,   
        c.category_name,   
        c.parent_id,   
        CONCAT_WS('/',c.category_name, cp.path)  
    FROM   
        config_drug_category c  
    JOIN   
        category_path cp ON c.id = cp.parent_id  
    WHERE   
        cp.parent_id != '0'  -- 继续向上追溯,直到顶级父节点  
)  
SELECT   
    path  
FROM   
    category_path  
WHERE   
    parent_id = '0';  -- 顶级父节点的条件是parent_id为'0'

输出结果:

{
    "msg": "操作成功",
    "code": 200,
    "data": {
        "path": "西药/心血管系统用药/降血压药"
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值