博客
关于我
mysql 中的数据实现递归查询
阅读量:385 次
发布时间:2019-03-05

本文共 930 字,大约阅读时间需要 3 分钟。

一、存储过程结构

存储过程通常用于数据库管理,用于将难以直接存储的数据结构化。以下是一个典型的存储过程示例:

create procedure Pro_GetUnderOrge5(      in idd varchar(36)  )  begin      declare lev int;      set lev = 1;      drop table if exists tmp1;      create table tmp1(          vid varchar(5),          vname varchar(10),          vpid varchar(5),          vlevel varchar(5),          levv int      );      insert tmp1 select vid, vname, vpid, vlevel, 1 from digui where vpid = idd;      while row_count() > 0 do          set lev = lev + 1;          insert tmp1 select t.vid, t.vname, t.vpid, t.vlevel, lev from digui t join tmp1 a on t.vpid = a.vid and levv = lev - 1;      end while;      insert tmp1 select vid, vname, vpid, vlevel, 0 from digui where vid = idd;      select * from tmp1;  end;

二、存储过程实现

存储过程的实现主要包括以下几个步骤:

  • 声明变量,并初始化参数。
  • 创建临时表用于存储中间结果。
  • 插入初始数据到临时表中。
  • 使用循环结构逐层递增级别,扩展数据。
  • 插入最终结果。
  • 三、调用结果

    通过调用存储过程 Pro_GetUnderOrge5,可以根据输入参数 idd 获取相应的数据。该存储过程适用于需要递归查询的场景,能够有效地展开数据层级。

    转载地址:http://ybyzz.baihongyu.com/

    你可能感兴趣的文章
    Asp.Net Core 2.1+的视图缓存(响应缓存)
    查看>>
    服务器开发- Asp.Net Core中的websocket,并封装一个简单的中间件
    查看>>
    没花一分钱的我竟然收到的JetBrains IDEA官方免费赠送一年的Licence
    查看>>
    Redis 集合统计(HyperLogLog)
    查看>>
    RE套路 - 关于pyinstaller打包文件的复原
    查看>>
    【wp】HWS计划2021硬件安全冬令营线上选拔赛
    查看>>
    Ef+T4模板实现代码快速生成器
    查看>>
    dll详解
    查看>>
    c++ static笔记
    查看>>
    C++中头文件相互包含与前置声明
    查看>>
    JQuery选择器
    查看>>
    MVC中在一个视图中,怎么加载另外一个视图?
    查看>>
    SQL--存储过程
    查看>>
    MVC学习系列5--Layout布局页和RenderSection的使用
    查看>>
    MVC学习系列13--验证系列之Remote Validation
    查看>>
    多线程之volatile关键字
    查看>>
    2.1.4奇偶校验码
    查看>>
    2.2.2原码补码移码的作用
    查看>>
    多线程之Lock显示锁
    查看>>
    ForkJoinPool线程池
    查看>>