zoukankan      html  css  js  c++  java
  • mysql中的递归

    别人问的一个需求:

     
    数据库里面保存的是父子关系结构:
    展示出来的需要根据子类一直查到顶类后将名称全部放一个字段里面,如下: 
    比如输入的code是1099,名称要显示 配料/花椒/ces
     
     
    这里使用到了递归,但是mysql本身没有递归查询,所以这里使用了function函数:
    drop function if exists getName;
    create FUNCTION getName(v_code int) returns varchar(10)
    begin 
    
        declare v_name varchar(10);
        declare v_name2 varchar(10);
    
        set v_name='';
        set v_name2='';
        
        repeat
            select `name`,`parent_code` into v_name,v_code from material_type where `code` = v_code limit 1;
            set v_name2 = concat_ws('/',v_name,v_name2);
        until v_code = 0 end repeat;    
        
        return v_name2;
        
    end;

    然后如下查询操作:

    select  code,name,parent_code,getName(code) from material_type;

    结果显示如下:

    注意:这里的顶层跟节点的code必须是0

     
     
     
     
  • 相关阅读:
    Python 集合
    Python 文字列
    JUNIT5(maven配置)
    Javascript严格模式
    移动互联测试
    Python的基础知识
    Linux系统下发件oa环境
    禅道的使用
    Linux系统的安装过程
    Oracle基础知识
  • 原文地址:https://www.cnblogs.com/30go/p/11365368.html
Copyright © 2011-2022 走看看