小猿圈之MySql递归查询

不管学习什么语言,python、java、php等等如果你以后的方向是web,那么你都离不开数据库,mysql数据库又是开源的,所以是最受欢迎的数据库,也是企业用的最多的数据库,小猿圈老师详解mysql的递归查询,不懂的同学可以看过来了。

一、递归语句

-- 向下递归函数

SELECT GROUP_CONCAT(‘‘‘‘, pk_dept , ‘‘‘‘)  FROM rzzxdb.bi_dept WHERE FIND_IN_SET(fr_pk_dept,‘1070‘)>0;

设置某个部门下的所有子部门为无效:

update bi_dept set zt =‘0‘ WHERE FIND_IN_SET(fr_pk_dept,‘部门ID‘)>0;

二、自定义递归函数

利用find_in_set()函数和group_concat()函数实现递归查询:、

1、向下递归:

调用方式:

SELECT * FROM t_areainfo WHERE FIND_IN_SET(id,queryChildrenAreaInfo(4));

实例:

DROP FUNCTION IF EXISTS queryChildrenAreaInfo;
CREATE FUNCTION queryChildrenAreaInfo(areaId INT) -- 或者 areaId char

RETURNS VARCHAR(4000)

BEGIN

DECLARE sTemp VARCHAR(4000);

DECLARE sTempChd VARCHAR(4000);

SET sTemp=‘$‘;

SET sTempChd = CAST(areaId AS CHAR);

WHILE sTempChd IS NOT NULL DO

SET sTemp= CONCAT(sTemp,‘,‘,sTempChd);

SELECT GROUP_CONCAT(id) INTO sTempChd FROM t_areainfo WHERE FIND_IN_SET(parentId,sTempChd)>0;

END WHILE;

RETURN sTemp;

END;

2、向上递归

调用方式:

SELECT * from t_areainfo where FIND_IN_SET(id,queryChildrenAreaInfo1(7));

实例:

DROP FUNCTION IF EXISTS queryChildrenAreaInfo1;
CREATE FUNCTION queryChildrenAreaInfo1(areaId INT)

RETURNS VARCHAR(4000)

BEGIN

DECLARE sTemp VARCHAR(4000);

DECLARE sTempChd VARCHAR(4000);

SET sTemp=‘$‘;

SET sTempChd = CAST(areaId AS CHAR);

SET sTemp = CONCAT(sTemp,‘,‘,sTempChd);

SELECT parentId INTO sTempChd FROM t_areainfo WHERE id = sTempChd;

WHILE sTempChd <> 0 DO

SET sTemp = CONCAT(sTemp,‘,‘,sTempChd);

SELECT parentId INTO sTempChd FROM t_areainfo WHERE id = sTempChd;

END WHILE;

RETURN sTemp;

END;

mysql递归方式分为向上递归和向下递归,小猿圈老师详解的mysql递归就到这了,想必大家看后有所了解了,学明白的同学感觉收获满满,有问题的朋友可以去小猿圈看看老师的视频详解,也许看后你会更加深入的了解。

原文地址:https://www.cnblogs.com/xiaoyuanquan/p/11002714.html

时间: 2024-10-09 14:10:09

小猿圈之MySql递归查询的相关文章

小猿圈-IT自学人的小圈子

小猿圈是国内免费学习IT视频教程在线教育平台,站内包含Python视频教程,Linux视频教程,Java视频教程,web全栈视频教程.是目前唯一一家从零开始到项目实战完全免费的IT学习平台,下面给大家详细介绍一下小猿圈这个新兴在线学习平台的教程内容. 小猿圈-IT自学人的小圈子 一.python视频教程 python视频教程总计分为5大阶段,包含python开发入门.面向对象&网络编程.Mysql数据库.web开发方向.爬虫方向.主讲师是路飞学院创始人Alex大神,10年+IT行业技术经验, 8

小猿圈python之Django和Flask比较?

Django和Flask是python web框架的其中两种,也是当今web比较流行的框架,那这两种框架到底有什么区别呢?下面小猿圈加加就说一下它们的区别. Django 是一个重量级的框架,Flask是一个轻量型的框架; Django框架:Django是基于中间件的一个大型框架.框架本身的内容相当丰富,基础部分:模版引擎.ORM.表单.路由分发这些标配,还有不少的中间件:登陆.后台管理,这些还是官方中间件. 另外还有不少的第三方中间件.关于第三方的没怎么专门研究,不能评论质量的好坏. 还有由R

小猿圈平台如何带小白学习python入门视频教程

Python开发技术近年来非常火热,尤其是在一线城市对于python开发人才需求一直扩大.很多企业对于python开发技术人才不惜重金招募.所以学习Python技术的人越来越多,初学Python开发技术的小伙伴对Python不是很了解,不知道Python技术好不好学,更不知道自己能否学好Python开发,本篇文章小编就和大家分享一下小猿圈平台如何带小白学习python入门视频教程? 小猿圈平台如何带小白学习python入门视频教程: 我们先来了解一下Python的学习路线,Python入门课程第

零基础小白入门Java免费视频教程推荐—小猿圈

Java语言作为世界上使用最多的开发语言,企业庞大的需求量让每年进入Java开发领域的人不减反增.对于零基础小白来讲如何学习Java开发语言是入门的第一个难题.本文小猿圈主要给零基础小白入门Java开发技术推荐一个靠谱的Java免费视频教程. 零基础小白入门Java免费视频教程推荐-小猿圈 关于Java基础入门视频教程的选择,网上有各种各样的解说,也有各式各样的视频教程,那么我们究竟应该如何选择Java免费视频教程呢?如何才能挑选到合适自己的Java基础入门视频教程呢? 许多想通过观看Java视

小猿圈web前端开发讲师:零基础自学html5开发方法

web前端开发目前市场使用率随着需求逐年递增.越来越多的年轻人转行进入了web前端开发领取.html5强大的功能是有目共睹的,本属自身独特的优势让这一技术越来越受欢迎,相比于原生APP,html5已经逐渐在用户体验生无限接近,再加上低廉的开发成本和强大的适配功能,早已经可以俘获开发商和开发者的芳心,本文小猿圈web前端开发讲师介绍零基础如何自学html5开发? 小猿圈web前端开发讲师:零基础自学html5开发方法: 1.拒绝插件,遇到交互效果就选择扒插件,这是一种非常不可取的方法,在这种情况之

小猿圈python视频教程讲师:python开发语言的就业薪资有多高

2019年IT最受欢迎语言榜java第一次滑落了王座,python开发语言摘顶王冠.自从人工智能开始进入大众视野,python成为了高薪就业的标签.越来越多的年轻人通过python开发技术实现了自己的财务自由.那么掌握python开发语言的就业薪资有多高呢?本文小猿圈python视频教程讲师为同学们具体介绍一下? 小猿圈python视频教程讲师:python开发语言的就业薪资有多高? 我们来看看统计数据吧,有图有真相:[ 对于Python的受欢迎程度,国外知名IT技术媒体JAXenter发布了一

小猿圈:Linux使用grep筛选多个条件及grep常用过滤命令

本篇文章小猿圈linux老师给大家分享一下Linux使用grep筛选多个条件及grep常用过滤命令,对Linux开发技术感兴趣的小伙伴就一起来看一下吧. cat log.txt | grep 条件; cat log.txt | grep 条件一 | grep 条件二; cat log.txt | grep 条件一 | grep 条件二 | grep 条件三; grep 条件一 log.txt | grep 条件二 | grep 条件三; 不说废话,例如需要排除abc.txt中的mmm nnn g

小猿圈解析Linux常用文件管理命令都有哪些?

对于刚开始学习linux的同学,很多都是比较陌生的,打开文件的速度过慢影响很多,针对这个情况,小猿圈Linux讲师整理了一份linux常用文件管理命令,希望对你正在自学linux的你有所帮助. 一.文件管理基本命令 1.pwd pwd显示当前的工作目录(显示当前shell CWD的绝对路径) 用法:pwd [option] 选项: -P显示真实物理路径 -L显示链接路径(默认) 拓展: ?每个shell和系统进程都有一个当前的工作目录 ?绝对路径:以正斜杠开始 完整的文件的位置路径 可用于任何想

小猿圈python简介和发展前景?

只要朝着一个方向努力,一切都会变得得心应手.-----勃朗宁小猿圈python简介:Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构.Python是一种解释型语言:这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言.Python是交互式语言:这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码.Python