-->Title:Generating test data
-->Author:wufeng4552
-->Date :2009-09-30 08:52:38
set nocount on
if object_id('tb','U')is not null drop table tb
go
create table tb(ID int, ParentID int)
insert into tb select 1,0
insert into tb select 2,1
insert into tb select 3,1
insert into tb select 4,2
insert into tb select 5,3
insert into tb select 6,5
insert into tb select 7,6
-->Title:查找指定節點下的子結點
if object_id('Uf_GetChildID')is not null drop function Uf_GetChildID
go
create function Uf_GetChildID(@ParentID int)
returns @t table(ID int)
as
begin
insert @t select ID from tb where ParentID=@ParentID
while @@rowcount<>0
begin
insert @t select a.ID from tb a inner join @t b
on a.ParentID=b.id and
not exists(select 1 from @t where id=a.id)
end
return
end
go
select * from dbo.Uf_GetChildID(5)
/*
ID
-----------
6
7
*/
-->Title:查找指定節點的所有父結點
if object_id('Uf_GetParentID')is not null drop function Uf_GetParentID
go
create function Uf_GetParentID(@ID int)
returns @t table(ParentID int)
as
begin
insert @t select ParentID from tb where ID=@ID
while @@rowcount!=0
begin
insert @t select a.ParentID from tb a inner join @t b
on a.id=b.ParentID and
not exists(select 1 from @t where ParentID=a.ParentID)
end
return
end
go
select * from dbo.Uf_GetParentID(2)
/*
ParentID
-----------
1
0
*/
分享到:
相关推荐
代码 博文链接:https://blueskylan.iteye.com/blog/848423
使用存储过程删除数据库表中具有父子关系的数据,删除父节点,则将其父节点以及子节点删除,使用数据库广度遍历
代码 博文链接:https://blueskylan.iteye.com/blog/848447
简介:mysql5.0.94版本,该版本以及较高级的版本(5.5、6等等)尚未支持循环递归查询,和sqlserver、oracle相比,mysql难于在树状表中层层遍历的子节点。本程序重点参考了下面的资料,写了两个sql存储过程,子节点...
1、SELECT * FROM ( SELECT d.id, ( SELECT count( 1 ) FROM t_tree dd WHERE dd.parent_uuid = d.id ) AS count FROM t_tree d ) a ... t3.id NOT IN ( SELECT t1.id FROM t_tree t1, t_tree t2 WHERE ...
Mysql 高可用 InnoDB Cluster 多节点搭建过程
主要介绍了MySQL实现树状所有子节点查询的方法,涉及mysql节点查询、存储过程调用等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
北京动力节点MySQL课程讲义_01 第一部分,一共三部分,网上目前没有分享,费了很大力气找到的,其他2部分看我分享
因此在这里采用类似递归的方法对菜单的所有子节点进行查询。 准备 创建menu表: CREATE TABLE `menu` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单id', `parent_id` int(11) DEFAULT NULL COMMENT '父...
文章主要知识点: Oracle 递归查询, start with connect by prior 用法 find_in_set 函数 concat,concat_ws,group_...第一种情况: start with 子节点id = ' 查询节点 ' connect by prior 子节点id = 父节点id
2018年全国五级行政区域,共719609,包括子父节点,表结构 CREATE TABLE `aid2018` ( `code` char(12) NOT NULL, `name` varchar(255) DEFAULT NULL, `level` char(12) DEFAULT NULL, `parent` char(12) DEFAULT...
mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...
mysql递归调用获取树节点(子树),使用存储过程实现子树的节点的查询,内附有word文件完整说明,和测试数据表的脚本文件。
MySQL实现树状所有子节点查询的方法function
MySQL集群节点、节点组、数据副本、以及分区。正宗的官方文件翻译。
本Demo是基于VS2010 c++的通过父子节点的节点号来查出当前节点所有上级节点和下级节点 1.包含MySql库,工程可用可测,可直接用于项目开发。 2.Demo中提供数据库表模型。 3.支持查出当前节点所有上级节点和下级节点
动力节点的杜老师讲述的mysql教程,详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看可掌握MySQL全套知识。
什么是视图?视图就是一个存在于数据库中的虚拟表。视图本身没有数据,只是通过执行相应的select语句完成获得相应的数据。...如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询这种。
ubuntu类debian系统搭建mysql高可用(mha)用到的manager节点和node节点安装包deb