我想以分层方式从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);
}
}
}
}
这是我的功能我被困在这里它只能删除一条记录
答案 0 :(得分:1)
关系数据库不容易为树结构提供帮助。如果您只有id
和parent_id
字段,则必须执行大量循环和递归才能使用树。这就是Nested Sets or MPTT被发明的原因。您应该移动到树的模型,这个问题将自行解决。
答案 1 :(得分:0)
delete from your_table order by id desc
答案 2 :(得分:0)
使用php截断表:
$SQL = "TRUNCATE TABLE `table_name`";
mysql_query($SQL);
这将重置所有自动增量。并删除表格中的所有记录。