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

     
     
     
     
  • 相关阅读:
    蛇形填数
    A Famous Music Composer
    Java用筛子法求素数
    素数求和问题
    Java中数组的快排
    大数阶乘
    Binary String Matching
    括号配对问题
    Android Studio安装和使用
    Android Studio使用手册
  • 原文地址:https://www.cnblogs.com/30go/p/11365368.html
Copyright © 2011-2022 走看看