首页 > 数据库 >MySQL递归查询所有子集

MySQL递归查询所有子集

时间:2023-09-30 21:11:21浏览次数:34  
标签:递归 sys 子集 MySQL dict data id


在 MySQL 数据库中,WITH RECURSIVE 是递归查询的一种语法。然而,MySQL 并不支持 WITH RECURSIVE 语法。相反,MySQL 提供了另一种递归查询的方法,即使用 CONNECT BY 和 START WITH 语法。

如果您需要执行递归查询,建议您使用 MySQL 版本 8.0 或更高版本,并使用 CONNECT BY 和 START WITH 语法。请注意,MySQL 8.0 版本中,CONNECT BY 语法要求启用递归公用表表达式(Recursive Common Table Expression,RCTE)。因此,您需要在配置文件中启用 cte_max_recursion_depth 参数,以便执行递归查询。

WITH RECURSIVE sys_dict_data_tree AS
(
  SELECT id, name, parent_id, 1 AS level
  FROM sys_dict_data
  WHERE id = 5
 
  UNION ALL
 
  SELECT a.id, a.name, a.parent_id, b.level + 1 AS level
  FROM sys_dict_data a
  JOIN sys_dict_data_tree b ON b.id=a.parent_id
)
SELECT * FROM sys_dict_data_tree;

执行结果:

MySQL递归查询所有子集_MySQL

MySQL递归查询所有子集

标签:递归,sys,子集,MySQL,dict,data,id
From: https://www.cnblogs.com/ips9999/p/17738227.html

相关文章

  • MySQL递归查询所有子集
    在MySQL数据库中,WITHRECURSIVE是递归查询的一种语法。然而,MySQL并不支持WITHRECURSIVE语法。相反,MySQL提供了另一种递归查询的方法,即使用CONNECTBY和STARTWITH语法。如果您需要执行递归查询,建议您使用MySQL版本8.0或更高版本,并使用CONNECTBY和STARTWITH语......
  • `centos 7.9`二进制方式安装`MySQL-5.7.43`
    二进制方式安装说明以下操作都是基于Linux操作系统cenos7.9,并且所有的操作都是基于root用户关闭防火墙停止防火墙 systemctlstopfirewalld禁用防火墙开机自启 systemctldisablefirewalld下载安装包下载地址如下 https://dev.mysql.com/downloads/mys......
  • MySQL数据库操作 Lab1
            实验一MySQL数据库操作实验目的:掌握MySQL安装、配置与登录方法,使用MySQL客户创建数据库及对数据库表完成各种操作实验内容:1、 安装MySQL数据库管理系统,5.7.X(建议5.7.23及以上)或8.X版本都可以。客户端不限。2、 使用MySQL客户端创建数据库,并且在库中按......
  • 一文搞懂MySQL事务隔离级别和实现原理
    什么是事务数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作。MySQL事务都是指在InnoDB引擎下,MyISAM引擎是不支持事务。假设一个网购付款的操作,用户付款后要涉及到订单......
  • mysql基础语句
    1.基本语句mysql-uroot-p--连接数据库showdatabases--列出所有数据库createdatabasexxx--创建一个数据库usexxx--切换到xxx数据库showtables--列出当前数据库所有的表--注释/*(多行注释)hellor3ality*/数据库xxx语言DDLdefineDMLmanage......
  • Nacos连接Mysql8连接失败问题
    一、问题复现Nacos、Mysql容器均开机自启。Nacos配置了Mysql,配置确认没有问题,发现每次重启服务器,Nacos都无法直接成功连接mysql。每次启动完Nacos后,需要用Datagrip连接一次Mysql,再dockerrestartnacos才可以连上Mysql。Nacos启动报错NoDataSourceset,详情如下......
  • mysql
    1.基本语句mysql-uroot-p--连接数据库showdatabases--列出所有数据库createdatabasexxx--创建一个数据库usexxx--切换到xxx数据库showtables--列出当前数据库所有的表--注释/*(多行注释)hellor3ality*/数据库xxx语言DDLdefineDMLmanage......
  • MySQL常用指令
    注意所有的命令都要用分号结尾!!!!1、查看MySQL中有那些数据库:showdatabases(默认自带了四个数据库)2、如何使用某个数据库:use数据库名称3、如何创建数据库:createdatabase数据库名称4、导入SQL指令:sourceSQL指令(SQL指令可以是文件的路径,但是文件的路径一定不要有中文!!)5、不看表......
  • QT: 电子商城系统-MYSQL数据库代码
    QT: 第17章【统合实例】电子商城系统MYSQL代码:/*SQLyogUltimatev12.3.2(64bit)MySQL-8.0.11:Database-emarket**********************************************************************//*!40101SETNAMESutf8*/;/*!40101SETSQL_MODE=''*/;/*!40......
  • Mysql 日期计算相差年、月、周、日数整理
    1、相差年数SELECTNOW()当前日期,DATE_ADD(NOW(),INTERVAL-400DAY)历史日期,TIMESTAMPDIFF(YEAR,DATE_ADD(NOW(),INTERVAL-400DAY),NOW())AS相差年;2、相差月数 SELECTNOW()当前日期,DATE_ADD(NOW(),INTERVAL-400DAY)历史日期,TIMESTAMPDIFF(MONTH,......