MySQL实现上下级菜单

在MySQL中实现上下级菜单,我们可以使用递归查询,我们需要创建一个表来存储菜单信息,包括菜单ID、菜单名称和父菜单ID,我们可以使用递归查询来获取所有菜单及其子菜单。

创新互联专注于六枝企业网站建设,响应式网站设计,成都商城网站开发。六枝网站建设公司,为六枝等地区提供建站服务。全流程定制网站开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

1、创建菜单表:

CREATE TABLE menu (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  parent_id int(11) DEFAULT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (parent_id) REFERENCES menu (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、插入菜单数据:

INSERT INTO menu (name, parent_id) VALUES
('首页', NULL),
('产品', 1),
('新闻', 1),
('关于我们', 1),
('联系我们', 1),
('产品1', 2),
('产品2', 2),
('产品3', 2),
('新闻1', 3),
('新闻2', 3),
('新闻3', 3),
('关于我们1', 4),
('关于我们2', 4),
('关于我们3', 4),
('联系我们1', 5),
('联系我们2', 5),
('联系我们3', 5);

3、使用递归查询获取所有菜单及其子菜单:

WITH RECURSIVE menu_hierarchy AS (
  SELECT id, name, parent_id
  FROM menu
  WHERE parent_id IS NULL
  UNION ALL
  SELECT m.id, m.name, m.parent_id
  FROM menu m
  INNER JOIN menu_hierarchy mh ON m.parent_id = mh.id
)
SELECT * FROM menu_hierarchy;

这个查询将返回一个包含所有菜单及其子菜单的列表,你可以根据需要修改查询以适应你的应用程序。


文章名称:MySQL实现上下级菜单
转载源于:http://gydahua.com/article/copecsc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流