创建测试表
-
CREATETABLE`areatest`(
-
`id`int(11)NOTNULLAUTO_INCREMENT,
-
`parent_id`int(11)NOTNULLDEFAULT'0'COMMENT'父ID',
-
`order_id`int(11)NOTNULLDEFAULT'0'COMMENT'排序ID',
-
`name`varchar(50)NOTNULLCOMMENT'名称',
-
PRIMARYKEY(`id`)
-
)ENGINE=MyISAMAUTO_INCREMENT=0DEFAULTCHARSET=utf8COMMENT='地区';
-
insertinto`areatest`values(1,0,1,'北京'),(2,0,3,'江西'),(3,0,2,'上海'),(4,2,1,'南昌'),(5,2,2,'九江'),(6,4,1,'永修'),(7,4,2,'星子'),(8,2,3,'赣州');
创建树形层次分析存储过程
-
DELIMITER$$
-
DROPPROCEDUREIFEXISTS`sp_areatest_child_nodes`$$
-
/*获取指定父ID树形层次数据放到child_nodes临时表*/
-
CREATEPROCEDURE`sp_areatest_child_nodes`(IN$parent_idINT/*父ID*/)
-
BEGIN
-
DECLARELEVELSMALLINTDEFAULT0;/*层次*/
-
DECLAREcouINTDEFAULT0;
-
DROPTABLEIFEXISTSchild_nodes_temp;/*单层次临时表*/
-
DROPTABLEIFEXISTSchild_nodes;/*层次临时表*/
-
CREATETEMPORARYTABLEchild_nodes_temp(`id`INT,`level`INT,`order_id`VARCHAR(1000))DEFAULTCHARSET=utf8;
-
CREATETEMPORARYTABLEchild_nodes(`id`INT,`level`INT,`order_id`VARCHAR(1000))DEFAULTCHARSET=utf8;
-
INSERTINTOchild_nodes_tempSELECT`id`,LEVEL,CAST(RIGHT(100+`order_id`,2)ASCHAR)FROM`areatest`WHERE`parent_id`=$parent_id;
-
SELECTROW_COUNT()INTOcou;
-
INSERTINTOchild_nodesSELECT*FROMchild_nodes_temp;
-
WHILEcou>0DO
-
SETLEVEL=LEVEL+1;
-
TRUNCATETABLEchild_nodes_temp;
-
INSERTINTOchild_nodes_tempSELECTa.`id`,LEVEL,CONCAT(b.order_id,CAST(RIGHT(100+a.`order_id`,2)ASCHAR))FROM`areatest`a,child_nodesbWHEREa.`parent_id`=b.`id`ANDb.`level`=LEVEL-1;
-
SELECTROW_COUNT()INTOcou;
-
INSERTINTOchild_nodesSELECT*FROMchild_nodes_temp;
-
ENDWHILE;
-
DROPTABLEchild_nodes_temp;
-
END$$
-
DELIMITER;
创建树形数据查询存储过程
-
DELIMITER$$
-
DROPPROCEDUREIFEXISTS`sp_areatest_tree`$$
-
/*获取指定父ID树形数据*/
-
CREATEPROCEDURE`sp_areatest_tree`(IN$parent_idINT/*父ID*/)
-
BEGIN
-
CALLsp_areatest_child_nodes($parent_id);
-
SELECTa.id,CASEb.parent_idWHEN0THENb.nameELSECONCAT(SPACE(a.level*2),'|-',b.name)ENDAS`name`
-
FROMchild_nodesaINNERJOIN`areatest`bONa.id=b.id
-
ORDERBYa.order_id;
-
DROPTABLEchild_nodes;
-
END$$
-
DELIMITER;
测试1
CALL sp_areatest_tree(0);
测试2
CALL sp_areatest_tree(2);
分享到:
相关推荐
│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例...
│ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父...
- 部门管理:可配置系统组织架构,树形表格展示(Draft) - 岗位管理:配置各个部门的职位(Draft) - 字典管理:可维护常用一些固定的数据,如:状态,性别等 - 系统日志:记录用户操作日志与异常日志,方便开发人员...
就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于 和单位做买卖。文章中还对 Jive再进行了剖析。 设计模式之 Decorator(装饰器) Decorator 是个油漆工,给...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 ...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 ...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 ...
J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...
J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...
arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu...