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

     
     
     
     
  • 相关阅读:
    java中继承和多态的理解
    汽车租赁系统
    s2第六章继承和多态
    第三章泛型集合ArrayList 和Hashtable
    第二章项目总结
    s2第二章深入c#类型
    .NET平台
    航班查询系统
    java初始重点语法
    JDBC
  • 原文地址:https://www.cnblogs.com/30go/p/11365368.html
Copyright © 2011-2022 走看看