> 데이터 베이스 > MySQL 튜토리얼 > 在mysql中建立树形结构_MySQL

在mysql中建立树形结构_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-01 13:41:57
원래의
1587명이 탐색했습니다.

bitsCN.com 在mysql中建立树形结构 这个不是什么新东西了,网上有很多方法,我也尝试了其中好的方法,都不尽人意,这是我最后我推荐的方法,共享一下,大家一起讨论,当然难如高手法眼,呵呵。我就直接贴代码了,有问题就联系我。 mysql中要有树形结构我认为表中应该有如写字段: 举例菜单表menu:   [sql]  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: [sql]  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  插入数据:[sql]  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);     执行存储过程:[sql]  call genNode_menu;  我们看一看menu表现在是什么情况了:
在mysql中建立树形结构_MySQL 很好,就是这个效果 现在可以按你的需求随便查询了: 比如: [sql]  select * from menu a where a.scort not like '%,1,%' order by a.scort     作者 lifaming15 bitsCN.com

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿