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实现上下级菜单
文章URL:http://www.hantingmc.com/qtweb/news33/27483.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联