小智贝文库 :专注文档资料8年,极速海量,用心打造! 首页 |注册 |登录 |帮助

管理频道 企业管理 人力资源 市场营销 生产质量 管理表格 行业资料 企业咨询 企业战略 企业文化 公司理财 物流采购 职业经理人

成功激励 管理工具 管理制度 服装行业 商业计划书 酒店餐饮管理 可行性报告 培训管理 经营管理

当前位置: 小智贝文库管理频道行业资料生活百科2012mysql递归查询(DOC 9页) -- 下载

2012mysql递归查询(DOC 9页)

  • 大小:7.00 KB
  • 语言:简体中文
  • 类型:生活百科
  • 下载次数:9737
  • 更新时间:10-12 23:59:18
  • 名称:
  • 应用平台:|WinXP|Win7|WinAll|
资料介绍

在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。
 
在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。
 
但很多时候我们无法控制树的深度。这时就需要在MySQL中用存储过程来实现或在你的程序中来实现这个递归。本文讨论一下几种实现的方法。
 
样例数据:

mysql> create table treeNodes
    -> (
    ->  id int primary key,
    ->  nodename varchar(20),
    ->  pid int
    -> );
Query OK, 0 rows affected (0.09 sec)
mysql> select * from treenodes;
+----+----------+------+
| id | nodename | pid  |
+----+----------+------+
|  1 | A        |    0 |
|  2 | B        |    1 |
|  3 | C        |    1 |
|  4 | D        |    2 |
|  5 | E        |    2 |
|  6 | F        |    3 |
|  7 | G        |    6 |
|  8 | H        |    0 |
|  9 | I        |    8 |
| 10 | J        |    8 |
| 11 | K        |    8 |
| 12 | L        |    9 |
| 13 | M        |    9 |
| 14 | N        |   12 |
| 15 | O        |   12 |
| 16 | P        |   15 |
| 17 | Q        |   15 |
+----+----------+------+
17 rows in set (0.00 sec)
树形图如下

 1:A
  +-- 2:B
  |    +-- 4:D
  |    +-- 5:E
  +-- 3:C
       +-- 6:F
            +-- 7:G
 8:H
  +-- 9:I
  |    +-- 12:L
  |    |    +--14:N
  |    |    +--15:O
  |    |        +--16:P
  |    |        +--17:Q
  |    +-- 13:M
  +-- 10:J
  +-- 11:K  
 
方法一:利用函数来得到所有子节点号。
创建一个function getChildLst, 得到一个由所有子节点号组成的字符串. 

mysql> delimiter //
mysql>
mysql> CREATE FUNCTION `getChildLst`(rootId INT)
    -> RETURNS varchar(1000)
    -> BEGIN
    ->   DECLARE sTemp VARCHAR(1000);
    ->   DECLARE sTempChd VARCHAR(1000);
    ->
 




……………………
本站免费提供《2012mysql递归查询(DOC 9页)》下载,我们己经对《2012mysql递归查询(DOC 9页)》进行全面的整理检查,以保证您安全的下载《2012mysql递归查询(DOC 9页)》,如果下载的压缩文件需要密码那就是本站的网址 http://www.xiaozhibei.com,2012mysql递归查询(DOC 9页)的文件大小为7.00 KB,本站还有大量关于生活百科,生活百科方面的资源提供下载哦,可以多找找。为下次能方便快速的找到本站,记得收藏我们的网址(http://www.xiaozhibei.com)哦!

标签: 生活百科

下载地址

相关下载