sql递归

--单表递归  由于项目中经常用到  , 随笔以作下次使用  

例如:找ProductType表 下ID为1的分类的所有子级

with result as    --result为别名

select * from TB_ProductType where Id=1  --查询ID为1 的数据
union all 
select TB_ProductType.* from tb_productType, result where result.ID = TB_ProductType.ParentID  ---递归--找到ID为1的分类的所有下级

 select * from result  --注意 上面只是获取了递归的对象 所以这里必须要查询一次

 

--递归删除  / 更新

with result as 

select * from TB_ProductType where Id=1 
union all 
select TB_ProductType.* from tb_productType, result where result.ID = TB_ProductType.ParentID

update TB_ProductType set name = '' where id in ( select id from result)  -- 

转载于:https://www.cnblogs.com/gjack/p/8717309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值