我想以分层方式从mysql中删除记录。我的数据库是这样的
id pid
1 0
2 1
3 2
我想删除以上所有记录。 请在 PHP MySQL 中使用适当的功能回复。
function content_deleted($content_id=0, $parent_id=0)
{
if($parent_id==0)
{
$query = $this->db->query("SELECT content_id FROM tbl_content WHERE content_id = $content_id");
}
else
{
$query = $this->db->query("SELECT content_id FROM tbl_content WHERE content_parent_id = $content_id");
}
if($query->num_rows()>0)
{
foreach($query->result() as $res)
{
$id = $res->content_id;
if($parent_id==0)
{
$this->db->query("DELETE FROM tbl_content WHERE content_id = $id");
}
else
{
$this->db->query("DELETE FROM tbl_content WHERE content_parent_id = $id");
$this->content_deleted($content_id, $id);
}
}
}
}
这是我的函数,我卡在这里,它删除了一条记录
关系数据库不容易用于树结构。如果您只有id
和parent_id
字段,则必须执行大量循环和递归才能使用树。这就是Nested Sets或MPTT被发明的原因。您应该为您的树移动到该模型,这个问题将自行解决。
delete from your_table order by id desc
要用 php 转动表格:
$SQL = "TRUNCATE TABLE `table_name`";
mysql_query($SQL);
这将重置所有自动增量。 并删除表中的所有记录。