首页 > 数据库 > PostgreSQL(pg) /MYSQL数据库,使用递归查询(WITH RECURSIVE)功能来实现获取指定菜单ID的所有下级菜单数据。

PostgreSQL(pg) /MYSQL数据库,使用递归查询(WITH RECURSIVE)功能来实现获取指定菜单ID的所有下级菜单数据。

时间:2023-07-12 16:25:15浏览次数:40  
标签:菜单 PostgreSQL RECURSIVE hierarchy menu MYSQL id SELECT

 

 PostgreSQL /MYSQL数据库,使用递归查询(WITH RECURSIVE)功能来实现获取指定菜单ID的所有下级菜单数据。

下方用例是假设菜单表menu的 改成自己的表即可

WITH RECURSIVE menu_hierarchy AS (
  SELECT 
    id,
    name,
    parent_id
  FROM 
    menu
  WHERE 
    id = <指定菜单ID>
  
  UNION ALL
  
  SELECT 
    m.id,
    m.name,
    m.parent_id
  FROM 
    menu m
  JOIN 
    menu_hierarchy mh ON mh.id = m.parent_id
)
SELECT 
  *
FROM 
  menu_hierarchy;

 

标签:菜单,PostgreSQL,RECURSIVE,hierarchy,menu,MYSQL,id,SELECT
From: https://www.cnblogs.com/pxblog/p/17547779.html

相关文章

  • Linux(Centos)安装Mysql的步骤
    因为Mysql收费所以Centos7不能像原来那么丝滑的去安装了,之前很多可行的安装方式现在都需要换个姿势。本人环境是CentOS7,安装的MySQL版本是5.7.34,从卸载到安装全过程记录。一.卸载MySQL(没安装过的可直接跳过)​ ​最后查看一下还有没有MySQL依赖的包名和文件夹,按上面步骤全部......
  • MySQL条件查询
    前言从今天开始,健哥就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深,全面讲解数据库体系。非常适合零基础的小伙伴来学习。 前戏已做完,精彩即开始全文大约【1263】字,不说废话,只讲可以让你学到技......
  • IDEA中mysql无法自动补全解决办法
    1.前言本人在跟着b站视频学习时,发现无法如视频中显示的那样进行sql提示,上网查找了一些资料,进行了解决2.解决后的提示示例图1图23.解决方式3.1我的解决方式本人使用的IDEA是2021.2.3设置——语言和框架——SQL方言,修改全局SQL方言与项目SQL方言为MySQL。(最初是“无”)......
  • 基于C#连接Mysql,并进行增删改查操作
    记录一下今天的学习内容。前置条件(括号里是我用的):VisualStudio (2022)、Mysql(8.0.33CommunityServer)、NavicatPremium(16) 1.开发准备首先,打开VisualStudio,选择控制台应用并创建,框架应该影响不大,我用的.net6.0然后新建一个名为MysqlDbContext.cs的项。......
  • MySql开启日志 --记录每条执行的SQL语句
    --第一条SETGLOBALlog_output='TABLE';SETGLOBALgeneral_log='ON';--在重启mysql重启Mysql详情请看:(10条消息)如何重启MySQL,正确启动MySQL_mysqlrestart_wuyepiaoxue789的博客-CSDN博客--重启完成之后可以去数据库`Mysql`中的general_log表里查看,也可以执行一下的......
  • 如何实现mysql语法的具体操作步骤
    如何学习和实现MySQL语法作为一名经验丰富的开发者,我将会教会你如何学习和实现MySQL语法。MySQL是一种广泛使用的关系型数据库管理系统,具有强大的功能和易于使用的语法。整体流程下面是学习和实现MySQL语法的整体流程的表格展示:步骤描述1.学习基本的MySQL语法和概念......
  • 如何实现mysql驱动的具体操作步骤
    MySQL驱动简介及使用示例1.什么是MySQL驱动?MySQL驱动是用于连接和操作MySQL数据库的软件模块。MySQL是一种常用的关系型数据库管理系统,而驱动则是用于连接不同编程语言和MySQL数据库之间的桥梁。驱动有助于程序员使用编程语言操作MySQL数据库,例如执行查询、插入、更新和删除数据......
  • mysql json使用
    如何加快对json数据的查询创建虚拟列addcolumn`column_name`varchat(32)generatedalwaysas(json_unquote(json_extract(`json_column`,'$.column')))virtualnull;为虚拟列添加索引createindexidx_columnontable_name(column_name)......
  • mysql 出现 mysqladmin flush-hosts
    【1】报错信息messagefromserver:"Host'xx.xx.xx.xx'isblockedbecauseofmanyconnectionerrors;unblockwith'mysqladminflush-hosts'"主机xx.xx.xx.xx被锁,因为许多连接错误;【2】快速解决mysql出现mysqladminflush-hosts,是因为其他客户机连接错误次数过......
  • MySQL从5.7升级到8.0后可能的回退方法
    MySQL从5.7升级到8.0后,可以降级的一些途径:·从8.0逻辑导出,然后导入5.7·使用5.7的复制·还原升级前的备份,并追赶在8.0中新生成的数据  1.逻辑导出和导入降级虽然MySQL5.7到5.6官方支持逻辑降级:但是从8.0降级到5.7却并非如此。官方文档只是简单提到不支持,因此,如果你尝......