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

发布时间 2023-07-12 16:16:19作者: yvioo

 

 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;