怎样实现这样的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 语句???????
...全文
42 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
一个 一个删除 先删除最下面的接点 ,最后删除根接点
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-07 07:58
社区公告
暂无公告