首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除同一表中存储的分层父记录和子记录

问如何删除同一表中存储的分层父记录和子记录
EN

Stack Overflow用户
提问于 2012-05-21 08:50:43
回答 2查看 2.2K关注 0票数 1
代码语言:javascript
复制
id name      parentid
 1 category     0
 2 question1    1
 3 type1        2
 4 type2        2
 5 question2    0
 6 type2        5
 7 type2        5

其中:

parent

  • question1是
  • ,question2是儿童
  • type1、type2、type3和type4是小矮人(

)

我想要写一条MySQL语句来删除带有所有子记录的所选父级。我怎么能这么做?

EN

回答 2

Stack Overflow用户

发布于 2012-05-21 08:57:16

MySQL不支持递归查询..。

如果你有一个预定的深度,你可以做几个连接。

否则,您将需要在应用程序中的代码中执行此操作,或者编写存储的Proc/函数来完成此操作。

编辑:快速递归函数删除.

代码语言:javascript
复制
function recursiveDelete($id) {
    $result=mysql_query("SELECT * FROM yourTable WHERE parentid='$id'");
    if (mysql_num_rows($result)>0) {
         while($current=mysql_fetch_array($result)) {
              recursiveDelete($current['id']);
         }
    }
    mysql_query("DELETE FROM yourTable WHERE id='$id'");
}
票数 2
EN

Stack Overflow用户

发布于 2013-02-01 10:10:19

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10682096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档