id name parentid
1 category 0
2 question1 1
3 type1 2
4 type2 2
5 question2 0
6 type2 5
7 type2 5
地点:
- 类别是父级
- question1 和question2 是 child
- type1、type2、type3 和type4 是孙辈
我想写一个 MySQL 语句来删除选定的父项及其所有子项记录。我该怎么做?
最佳答案
MySQL 不支持递归查询...
如果您有预定的深度,您可以通过一些连接来完成。
否则,您将需要在应用程序中的代码中执行此操作,或编写存储过程/函数来执行此操作。
编辑:快速递归函数删除...
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'");
}
关于php - 如何删除同一张表中存储的分层父子记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10682096/