我有一个评论表,行具有父子关系,这意味着任何评论都可以有子项(响应),任何子项本身也可以有子项(无限)。
所有行都在一张表中,根行为parent_id
0。
现在我想选择给定parent_id 的所有子级(任何深层)
任何想法 ?
关于“SELECT”,即如何递归地获取父级的所有后代,这个问题有很多答案:
Rolando 的方法使用变量和过程。
a_horse_with_no_name 的方法使用递归 CTE。这在 MySQL 中尚不可能,但您可以切换到已实现它们的 MariaDB 10.2。
对于递归DELETE
,所有 MySQL 版本都有一个简单的方法:
使用该选项添加FOERIGN KEY
约束(如果尚未添加)ON DELETE CASCADE
。然后,简单删除一个节点将删除其所有后代。
您可以修改上面链接中的方法,以执行 aDELETE
而不是SELECT
.
归档时间: |
|
查看次数: |
13223 次 |
最近记录: |