mysql8.0递归_mysql8.0版本递归查询

1.先在mysql数据库添加数据

DROP TABLE IF EXISTS `dept`;

CREATE TABLE `dept`  (

`id` int(11) NOT NULL,

`pid` int(11) DEFAULT NULL,

`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

`date` datetime(0) DEFAULT NULL,

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- Records of dept

-- ----------------------------

INSERT INTO `dept` VALUES (1, 0, ‘总部门‘, ‘2020-04-16 15:00:54‘);

INSERT INTO `dept` VALUES (2, 1, ‘课程部‘, ‘2020-04-16 15:00:57‘);

INSERT INTO `dept` VALUES (3, 1, ‘爱好部‘, ‘2020-04-16 15:01:01‘);

INSERT INTO `dept` VALUES (4, 1, ‘小吃部‘, ‘2020-04-16 15:01:03‘);

INSERT INTO `dept` VALUES (5, 2, ‘语文‘, ‘2020-04-15 15:01:07‘);

INSERT INTO `dept` VALUES (6, 3, ‘羽毛球‘, ‘2020-04-15 15:01:14‘);

INSERT INTO `dept` VALUES (7, 4, ‘臭豆腐‘, ‘2020-04-15 15:01:18‘);

INSERT INTO `dept` VALUES (8, 4, ‘鸭脖‘, ‘2020-07-11 11:21:29‘);

根据父级Id递归查询所有子节点(查询父级Id为0 并且分类为0的所有子节点)

WITH RECURSIVE cte AS

(

SELECT a.id, a.pid,a.name FROM dept a WHERE a.id=‘1‘

UNION ALL

SELECT k.id, k.pid,k.name FROM dept k INNER JOIN cte c ON c.id = k.pid

)SELECT id,name,pid FROM cte

afdb0a166e9af5f9d365aaa4ab162576.png

根据子节点查询所有父亲节点(查询子节点Id为8的所有父节点)

WITH RECURSIVE cte AS

(

SELECT a.id, a.pid,a.name FROM dept a WHERE a.id=‘8‘

UNION ALL

SELECT k.id, k.pid,k.name FROM dept k INNER JOIN cte c ON c.pid = k.id

)SELECT id,name,pid FROM cte

4dd8eb74e031538b9ed8aef131b726a9.png

二.sqlserver 的查询语句写法(去掉RECURSIVE即可 当然得在sqlserver数据库中添加数据 并执行语句)

WITH cte AS

(

SELECT a.id, a.pid,a.name FROM dept a WHERE a.id=‘4‘

UNION ALL

SELECT k.id, k.pid,k.name FROM dept k INNER JOIN cte c ON c.id = k.pid

)SELECT id,name,pid FROM cte

原文参考:https://www.cnblogs.com/liuxiaoji/p/11152094.html

mysql8.0版本递归查询

标签:insert   rop   har   小吃   cte   mysq   form   sts   mysql8

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/atsong/p/13320754.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 轮播插件

flexslider pc插件 个人用过flickerplate 移动端插件 个人用过个人觉得比较好的移动端插件swiper http://www.swiper.com.cn/ 用过个人觉得比较好的pc端插件待定

计算机中的字符编码

字符编码 什么是计算机编码 计算机只能处理二进制的数据,其它的数据都要进行转换,但转换必须要有一套字符编码(是字符与二进制的一个对应关系)。常用的字符:a-z、0-9、其它的符号等,计算机也不能直接处理。 (字符编码类…

致力微商_致力于自己。 致力于公益组织。

致力微商by freeCodeCamp通过freeCodeCamp 致力于自己。 致力于公益组织。 (Commit to Yourself. Commit to a Nonprofit.) In case you missed it, our October Summit was jam-packed with several big announcements about our open source community.如果您错过了它&#…

应急照明市电检测_应急照明如何供电? 如何接线? 图文分析!

对于大部分刚接触建筑电气设计的工作者来说,应急照明的强启原理一直都是很头疼的问题。由于不知道应急照明的强启原理,所以,应急灯具应该用多少根线,其实也就无从谈起。下面以文字和图片结合的方式来说明应急灯怎么接线的&#xf…

win10网速慢

升级到win10之后发现网速特别慢,搜了下,网上的解决办法果然好使,按照如下操作即可。 返回桌面,按WINR键组合,运行gpedit.msc 打开组策略 依次展开管理模板-》网络-》QoS数据计划程序-》限制可保留宽带,双击…

ubuntu安装nodejs

下载nodejs https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.gz 解压 tar -zxvf node-v4.6.0-linux-x64.tar.gz 移动到/opt/下 mv node-v4.6.0-linux-x64 /opt/ 创建链接 ln -s /opt/node-v4.6.0-linux-x64/bin/node /usr/local/bin/node 转载于:https://www.cnblog…

android实用代码

Android实用代码七段(一) 前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用。 声明 欢迎转载,但请保留文章原始出处:)     博客园:http://www.cnblogs.com 农民伯伯&…

mysql 全文本检索的列_排序数据列以检索MySQL中的最大文本值

为此,您可以将ORDER BY与一些聚合函数right()一起使用。让我们首先创建一个表-create table DemoTable1487-> (-> StudentCode text-> );使用插入命令在表中插入一些记录-insert into DemoTable1487 values(560);insert into DemoTable1487 values(789);in…

关于长寿_FreeCodeCamp可以帮助您更长寿

关于长寿by Christopher Phillips克里斯托弗菲利普斯(Christopher Phillips) 免费代码营可能帮助您长寿 (Free Code Camp Might Help You Live Longer) Since I started my web development journey with Free Code Camp, I’ve felt more awake, more alert, and able to pro…

python世界你好的输出便携电源适配器_65W PD输出,Thinkplus USB-C便携电源适配器(PA65)开箱评测...

包装盒底盖面为红色,标注了产品的相关参数:型号:PA65;输入:100V-240V~50/60Hz 1.5A;输出:5V/3A、9V/3A、12V/3A、15V/3A、20V/3.25A;制造商:南京博兰得电子科技有限公司&…

归并排序与逆序对

在刷题的过程中碰到了关于无序序列的逆序对统计的问题。 直接暴力会超时,然后搜索了一下算法,发现可以通过归并排序的思想来做到这个统计的过程。看代码的时候,不知道自己的理解力不够还是不熟悉别人的代码,反正是看不懂。无奈之下…

c#获取pdf文件页数

引用命名空间:using iTextSharp.text.pdf; string filePath Server.MapPath("/upload/123.pdf"); //文件的物理路径PdfReader reader new PdfReader(filePath);int iPageNum reader.NumberOfPages; //文件页数reader.Close();Response.Write("文件…

VS2015 Cordova Ionic移动开发(五)

一、创建侧边菜单和导航项目 1.使用VS创建一个Ionic空项目,同时创建一个Ionic SideMenu和Ionic Tabs项目。将SideMenu和Tabs项目里的templates和js文件合并到空项目里,修改js对应的代码即可。完整项目工程如下: 2.App.js代码修改如下&#xf…

最佳适应算法和最坏适应算法_算法:好,坏和丑陋

最佳适应算法和最坏适应算法by Evaristo Caraballo通过Evaristo Caraballo 算法:好,坏和丑陋 (Algorithms: The Good, The Bad and The Ugly) Who has been in Free Code Camp without having the experience of spending hours trying to solve Algori…

mysql条件触发器实例_mysql触发器实例一则

例子,实例学习mysql触发器的用法。一,准备二张测试表:1,测试表1复制代码 代码示例:DROP TABLE IF EXISTS test;CREATE TABLE test (id bigint(11) unsigned NOT NULL AUTO_INCREMENT,name varchar(100) NOT NUL…

阿里大数据神预测 胜率仅5.9%中国却1:0胜韩国

写在最前面:这是早晨偶然看到的一篇文章,是对昨天中国却1:0胜韩国的评论。有朋友感慨:努力不放弃的时候,全世界都会帮你。这篇内容很全面的串起阿里巴巴在大数据预测方面的动作,角度很别致,分享…

Python中类、对象与self详解

先介绍一下python中的类与对象/实例。然后详细说明self。说明:对象等同实例,本文称呼不一致时请自行统一 【一】类与对象/实例 1、类 (1)类由名称、属性、方法三部分组成 (2)类是抽象模板,比如学…

面试题28 字符串排列

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 1 cla…

javascript 框架_克服JavaScript框架疲劳

javascript 框架by Tero Parviainen通过Tero Parviainen 克服JavaScript框架疲劳 (Overcoming JavaScript Framework Fatigue) The JavaScript community is suffering from a wave of framework fatigue. It’s caused by the massive outpouring of new frameworks, techniq…

java开发环境:还在配classpath?你out啦!

2019独角兽企业重金招聘Python工程师标准>>> 先说结论:只需要配置JAVA_HOME和path路径即可,无需配置classpath 参考Oracle官网的说明: The class path tells JDK tools and applications where to find third-party and user-defi…