`
lifaming15
  • 浏览: 64754 次
  • 来自: ...
文章分类
社区版块
存档分类

在mysql中建立树形结构

 
阅读更多

这个不是什么新东西了,网上有很多方法,我也尝试了其中好的方法,都不尽人意,这是我最后我推荐的方法,共享一下,大家一起讨论,当然难如高手法眼,呵呵。我就直接贴代码了,有问题就联系我。

mysql中要有树形结构我认为表中应该有如写字段:

举例菜单表menu:

create table menu
(
 id int not null auto_increment,
 pid int,
 name varchar(100) not null,
 nlevel int,
 scort varchar(8000),
 primary key (id)
)
type = InnoDB;

alter table menu add constraint FK_Reference_67 foreign key (pid)
 references menu (id) on delete restrict on update restrict

创建存储过程genNode_menu:

BEGIN
 DECLARE Level int ;
 Set Level=0 ;
 update menu a inner join (SELECT id,Level,concat(',',ID,',') scort FROM menu WHERE pid is null) b on a.id=b.id
 set a.nlevel=b.level,a.scort=b.scort;
 WHILE FOUND_ROWS()>0 DO
  SET Level=Level+1;
update menu a inner join (
   SELECT ID,Level,scort FROM menu 
    WHERE nLevel=Level-1) b on a.pid=b.id
 set a.nlevel=b.level,a.scort=concat(b.sCort,a.ID,',');
 END WHILE;
END
插入数据:

INSERT INTO menu VALUES ('1', null, '菜单1', null, null);
INSERT INTO menu VALUES ('2', '1', '菜单1-1', null, null);
INSERT INTO menu VALUES ('3', null, '菜单2', null, null);
INSERT INTO menu VALUES ('4', '3', '菜单2-1', null, null);
INSERT INTO menu VALUES ('5', '4', '菜单2-1-1', null, null);

执行存储过程:

call genNode_menu;
我们看一看menu表现在是什么情况了:

很好,就是这个效果

现在可以按你的需求随便查询了:

比如:

select * from menu a where a.scort not like '%,1,%' order by a.scort

分享到:
评论

相关推荐

    mysql 树形结构查询

    在 findLChild 存储过程中,我们首先创建了一个临时表 tmp_table,以便于存储树形结构的数据。然后,我们设置了递归深度为 99,以便于控制查询的深度。接着,我们调用了 iterative 存储过程以实现树形结构的查询。...

    MySql 中查询树形结构的全部子项列表 Function

    在MySQL数据库中,处理树形结构的数据是一项常见的任务,特别是在构建层级关系如组织架构、菜单系统或者分类目录时。本文将深入探讨如何在MySQL中查询树形结构的全部子项列表,结合提供的`MySql_Link_Function.sql`...

    JSP+Mysql实现的简单树形结构

    在这个项目中,树形结构的节点数据可能存储在MySQL数据库的表中,每个节点可能包含父节点ID、子节点列表等信息,以实现树形关系。 3. **数据模型**:为了实现树形结构,通常需要设计一个合理的数据模型。在这个项目...

    mySql实现树形查询的函数存储过程例子

    虽然Oracle等数据库提供了如`CONNECT BY`等方便的功能来支持树形结构的查询,但在MySQL中并没有内置此功能。因此,本文将详细介绍如何通过自定义存储过程和函数来实现在MySQL中的树形查询。 #### 二、准备工作 为了...

    ztree树形结构+mysql完整

    在这个项目中,数据库用于存储树形结构中的节点数据,可能包括节点ID、父节点ID、节点名称、附加属性等。开发者需要设计相应的数据库表结构来存储这些数据,并通过SQL语句进行数据的增删改查操作。 为了将数据库中...

    BS树形结构(jsp+mysql数据库+设计文档)

    在这个项目中,“BS树形结构(jsp+mysql数据库+设计文档)”是利用Java Web技术,即JSP(JavaServer Pages)和Servlet,以及MySQL数据库来实现的Web应用。下面将详细阐述这个项目的知识点。 1. **B/S架构**:B/S...

    mysql数据表导出生成xml文件和树形结构

    然后,利用这个树结构,我们可以开发一个用户界面,展示数据表的树形视图。用户可以通过点击节点来加载或隐藏子节点,从而实现交互式浏览。 总之,MySQL数据表导出到XML文件是一个涉及数据库连接、数据查询、XML...

    Ajax+jsp+MySQL实现动态树形菜单

    在动态树形菜单中,Ajax负责异步加载子节点,当用户展开一个父节点时,它会发送请求到服务器,获取该父节点下的子节点信息,然后在客户端动态插入到树形结构中,这样既提高了用户体验,又减轻了服务器压力。...

    jquery整合dtree 动态加载树形结构,提高效率

    动态加载树形结构, 本人这段时间正巧要做一个省市县的树状结构图,公司之前用的dtree实现起来效率太低,半天打不开页面,于是考虑用jquery动态加载,通过网上查资料,学习别人的列子,现将本人所整理的树状结构...

    树形结构ssh+mysql+json

    在树形结构中,每个菜单项可以看作是一个记录,包含父菜单ID和其他属性,通过这些关系构建出层次结构。 5. **JSON**:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在前后端交互...

    数据库控制树形结构的生成

    数据库中的树形结构是一种常见的数据组织方式,尤其在索引、查询优化以及关系数据库的层次模型中发挥着关键作用。这种结构以节点和边的形式表示数据,其中每个节点代表一个数据项,而边则表示节点之间的关系。在本文...

    树形结构实例带数据库

    实时更新功能意味着当在树形结构中对数据进行修改时,这些更改会立即反映到数据库中。这可能涉及到事件驱动编程,例如在TTreeView的OnClick或OnChange事件中编写更新数据库的代码。同时,为了保持用户界面的响应性,...

    【JavaScript源代码】vue Element-ui表格实现树形结构表格.docx

    下面是一个基本的Vue模板,展示了如何使用Element UI创建树形结构的表格: ```html :data="tableData" style="width: 100%" :row-key="id" :tree-props="{children: 'children', hasChildren: '...

    解析数据库 形成树形结构菜单

    在这个场景中,我们关注的是如何使用JSP(JavaServer Pages)和MySQL数据库来在网页上构建一个树形结构的菜单。树形结构是一种常见的数据表示方式,它能清晰地展示层次关系,非常适合用于菜单或导航系统。下面将详细...

    jsp+mysql+java 写的树形

    在Web开发中,这种树形结构常用于展示层级关系的数据,如目录结构、组织架构或者数据库表的关联关系等。JSP(JavaServer Pages)是Java EE平台上的动态网页技术,用于生成服务器端的HTML内容;MySQL则是一种常用的...

    mysql无限级别树形菜单操作(附加JSP新闻发布系统)

    总的来说,这个案例涵盖了MySQL的存储过程应用、无限级别树形结构的表示以及与JSP的结合,这些都是Web开发中常见的技术。通过理解和实践这些知识点,开发者可以更好地处理层次化数据,构建出高效且易于维护的新闻或...

    mysql 无限级分类实现思路

    MySQL 实现无限级分类是一种常见的数据库设计挑战,特别是在需要构建层级结构的数据模型时,例如网站导航菜单、组织架构或商品分类。以下将详细介绍三种常见的无限级分类实现方法,并分析其优缺点。 ### 1. 递归...

    Jsp实现树形结构.docx

    树形结构在Web应用中常用于展示层级关系的数据,例如组织结构、文件系统等。JSP(JavaServer Pages)作为Java的一种动态网页技术,可以结合JavaScript来实现这样的功能。本篇文章将详细介绍如何利用JSP和JavaScript...

    基于PHP的Tree 生成无限多级分类,生成树形结构.zip

    在实际应用中,可能还需要考虑性能优化,例如使用预加载(Eager Loading)来减少数据库查询次数,或者利用内存缓存(如Redis或Memcached)来存储已生成的树形结构,避免每次请求都重新构建。 压缩包中的文件...

    zTree后台组装树结构java代码

    在IT行业中,构建树形结构的数据展示是一种常见的需求,特别是在前端UI设计中。zTree是一款流行的JavaScript插件,专门用于创建交互式的树形菜单或树状视图。本主题聚焦于如何在Java后端组装zTree所需的树结构,并与...

Global site tag (gtag.js) - Google Analytics