MySQL8新特性实现无限层级依赖SQL查询

news2024/11/23 23:03:12

前言

看IT老齐视频,学到了一招MySQL8的新特性,特此记录一下,大家可以去看原视频:
【IT老齐173】学到就是赚到,利用MySQL8新特性实现无限层级依赖SQL查询

准备

MySQL至少需要8以上的版本哦!

1.创建表

CREATE TABLE `city` (
  `id` bigint NOT NULL,
  `p_id` bigint DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (1, 0, '四川省');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (2, 0, '黑龙江省');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (3, 1, '广元市');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (4, 3, '剑阁县');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (5, 4, '普安镇');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (6, 5, '田家乡');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (7, 6, '石庆村二组');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (8, 2, '哈尔滨市');
INSERT INTO `demo`.`city` (`id`, `p_id`, `name`) VALUES (9, 8, '江北大学城');

2.执行SQL

WITH recursive r as (
	SELECT id,p_id,name from city c WHERE id = 1
UNION ALL
	SELECT c.id,c.p_id,CONCAT(r.name,'>',c.name) as name FROM city c,r WHERE r.id = c.p_id
)
SELECT id,p_id,name from r WHERE r.id = 7;

3.执行结果

在这里插入图片描述

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

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

相关文章

石墨消解仪 石墨炉加热 热传导率高 平均温差小

GS系列石墨消解仪是一款专为实验室加热设计制造的加热装置,可用于样品加热、培养、烘干。采用国际先进技术,具有消解快速、高效、节能、方便等优点,采用数字电路PID方式控制温度,更加准确。高纯优质石墨加热载体,表面喷…

代码随想录——电话号码的字母组合(Leetcode17)

题目链接 回溯 class Solution {List<String> res new ArrayList<String>();StringBuilder str new StringBuilder();HashMap<String, String> Sites new HashMap<String, String>();public List<String> letterCombinations(String digit…

《汇编语言程序设计》例子出现segmentation fault

照着例子抄写了一下&#xff0c;直接用的 gcc 编译&#xff0c;源码如下&#xff0c;因为不支持 pushl&#xff0c;所以改成了 pushq #cpuid.s View the CPUID Vendor ID string using C library calls .section .data output:.asciz "The processor Vendor ID is %s \n&…

揭秘:边缘智能网关P1600在智慧灯杆上的应用

智慧灯杆作为智慧城市建设的重要组成部分&#xff0c;集成了照明、通信、安防、环境监测等多重功能&#xff0c;是实现城市智能化的关键载体。边缘智能网关P1600在这一系统中扮演着至关重要的角色&#xff0c;它不仅连接和管理各种传感器和设备&#xff0c;还负责数据的采集、处…

python操作注册表没有权限(error:5拒绝访问)

在IDE中运行 1. Openkey( , , accesswinreg.KEY_ALL_ACCESS) 2. 管理员方式运行Vscode或PyCharm 如果要打包成应用呢&#xff1f; 怎么处理权限问题&#xff1f;

从Instance classifier重新思考多实例学习

弱监督的WSI分类通常被形式化为多实例学习&#xff08;MIL&#xff09;问题&#xff0c;其中每张slide都被视为一个bag&#xff0c;从中切出的patch被视为实例。现有的方法要么通过伪标记训练实例分类器&#xff0c;要么通过注意力机制将实例特征聚合为bag特征&#xff0c;然后…

【递归、搜索与回溯】综合练习二

综合练习二 1.组合2.目标和3.组合总和4.字母大小写全排列 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.组合 题目链接&#xff1a;77. 组…

电脑剪贴板历史记录查看,让你的信息管理更加有序!

剪贴板是电脑中一个非常实用的功能&#xff0c;允许用户在不同的应用程序之间复制和粘贴文本、图像、文件等内容。然而&#xff0c;默认情况下&#xff0c;剪贴板只能存储最近一次复制的内容&#xff0c;这可能会限制我们的工作效率。幸运的是&#xff0c;电脑剪贴板历史记录查…

MySQL中实现行列转换的示例

在 MySQL 中进行行列转换&#xff08;即&#xff0c;将某些列转换为行或将某些行转换为列&#xff09;通常涉及使用条件逻辑和聚合函数。虽然 MySQL 没有像 Oracle/SQL Server 中的 PIVOT 和 UNPIVOT 那样的直接功能&#xff0c;但你可以通过结合 CASE 语句、UNION 或 UNION AL…

c语言哈夫曼中英文混合编码

一.需求文档 c语言实现哈夫曼编码 1.中文编码 2.英文编码 3.中英文混合编码 4.从文件读取进行编码 5.编码生成编码文件 6.从生成的编码文件进行解码 二.运行截图

香港优才计划中介避坑,深圳哪家优才中介有实力?

随着香港优才计划取消配额限制以来&#xff0c;优才计划递交申请量骤增&#xff0c;许多DIY的申请人在递交申请后&#xff0c;长时间未能收到审批结果&#xff0c;甚至有人等待了12个月之久仍对审批进展一无所知。 而一些有中介协助的申请人&#xff0c;在等待审批的过程中&am…

如何在WIndows虚拟机安装 macOS 黑苹果系统?

在本教程中&#xff0c;我们将介绍如何在虚拟机上安装 macOS 黑苹果系统。黑苹果系统是非苹果公司官方支持的 macOS 系统的非官方版本&#xff0c;可以在普通 PC 上运行。请注意&#xff0c;安装黑苹果系统可能违反苹果的许可协议&#xff0c;请自行承担风险。参考视频教程&…

二、C#基本语法

C#是一种面向对象的编程语言。在面向对象的程序设计方法中&#xff0c;程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型&#xff0c;或者说&#xff0c;是相同的class中。 例如&#xff0c;以rectangle&#xff08;矩形&#xff09;对象为例。它具有length和…

有声读物管理平台Booksonic-Air

老苏最近在听评书&#xff0c;所以想找个软件来管理和收听&#xff0c;找了一圈&#xff0c;感觉 Booksonic-Air 可能能满足老苏的需求。 什么是 Booksonic-Air &#xff1f; Booksonic-Air 是一个用于流式传输有声读物的服务器&#xff0c;是原始 Booksonic 服务器的后继者。…

docker镜像拉取K8s的calico,Pod报错Init:ImagePullBackOff及kubekey生成离线包报错error: Pipeline[ArtifactExportpipe的解决

配置k8s集群出现问题 起初以为是版本问题&#xff0c;最后比对了一下发现没有问题。使用 kubectl describe calico-node-mg9xh -n kube-system命令查看发现docker pull 镜像失败&#xff0c;但是docker国内镜像源早就配置过了。 猜测Docker的缓存可能会导致拉取镜像失败。尝试…

深入探究MySQL的B+树索引

一、索引概述 在MySQL中&#xff0c;索引是一种数据结构&#xff0c;它可以帮助数据库系统更快地检索数据。索引可以比作一本书的目录&#xff0c;它可以让我们不必翻阅整本书就能找到所需的信息。没有索引&#xff0c;MySQL必须从头到尾扫描整个表来找到相关的行&#xff0c;…

Hack The Box-Editorial

总体思路 SSRF->敏感信息泄露->CVE-2022-24439 信息收集&端口利用 nmap -sSVC editorial.htb目标机器开放22、80和1027端口&#xff0c;这里先查看80端口 进去后是一个图书收集界面&#xff0c;对网站进行扫描 dirsearch -u http://editorial.htb逐一访问 about界…

数据分析:微生物组差异丰度方法汇总

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 微生物数据具有一下的特点&#xff0c;这使得在做差异分析的时候需要考虑到更多的问题&…

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的&#xff1a;应用MarkupExtention定义IValueConverter&#xff0c;使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …

白酒:茅台镇白酒的配餐建议与味觉体验

茅台镇白酒&#xff0c;以其与众不同的酿造工艺和卓着的品质&#xff0c;成为了中国白酒的代表之一。而云仓酒庄豪迈白酒&#xff0c;作为茅台镇的品牌&#xff0c;其配餐建议与味觉体验备受关注。 在品鉴云仓酒庄豪迈白酒时&#xff0c;配餐的选择对于整体味觉体验至关重要。…