怎样实现这样的delete语句?

jieshen 2004-05-07 07:58:57
我有张sql表
id name parentid
1 a 0
2 b 1
3 c 1
4 d 0
5 e 3
6 f 2
7 g 4

就象的树型一样。
a
b
f
c
e
d
g
有两个根结点 :a ,d
如果我想删除a节点,夜把它的子节点删除,怎么实现这样的delete 语句???????
...全文
67 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
uffeng 2004-05-07
  • 打赏
  • 举报
回复
再添加一句 如果只是一个以子查询的 sql语句
小弟才疏学浅 还是认为不幸 毕竟不知道节点的深度
是么??
uffeng 2004-05-07
  • 打赏
  • 举报
回复
bitsbird(一瓢.net) 解决办法 是不错 刚才我没有转过弯来
不过 下面跟这这句话 有点感觉小家子气了!!呵呵 有什么得罪的 见谅
大家本着讨论问题的态度
bitsbird 2004-05-07
  • 打赏
  • 举报
回复
有些人只是说说,从来不自己写,去做,不去真正的解决问题
bitsbird 2004-05-07
  • 打赏
  • 举报
回复
我只是举了个例子,楼主很简单得就能看出来,做一个删除一个得存储过程,只要把name的值传进去就行了,
lxcc 2004-05-07
  • 打赏
  • 举报
回复
要是不是删除a或者B呢?
//肯定是要传参数的
uffeng 2004-05-07
  • 打赏
  • 举报
回复
楼上 的 楼上 明显不幸 要是不是删除a或者B呢?
uffeng 2004-05-07
  • 打赏
  • 举报
回复
方法两种 大同小异(都是递规)
1 通过parentid 查找 所属项 直到为空 开始删除
2 。。。。。。。。。。。。每 查找一到一个 那么可以将字符串累加(字符串是delete语句where 语句) 这样数据库只要执行一次
bitsbird 2004-05-07
  • 打赏
  • 举报
回复
delete * from table1 where (name='a' or name='b' or parentid
=(select id from table1 where name='a') or parentid
=(select id from table1 where name='b') )
chrch 2004-05-07
  • 打赏
  • 举报
回复
编一个递归的程序,后序遍历删除就行了
scula 2004-05-07
  • 打赏
  • 举报
回复
一个 一个删除 先删除最下面的接点 ,最后删除根接点

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧