这是我在这个博客上的第一篇文章,请帮助我
我正在尝试从递归查询中获取所有最后一个元素,但是要花很多时间才能继续进行是否有更好的方法来做到这一点我到底在做什么
假设我有一张像
ID ParentId
1 0
2 1
3 1
4 1
5 2
6 2
7 3
8 4
对于 Id 1,我想得到 5,6,7,8,因为您可以看到 5,6,7,8 的父母是 1 的孩子,同样对于 Id 2 o/p 必须是 5 和 6的最佳解决方案。我的意思不是重复运行查询以获取子元素
我为解决 MySQL 中的问题所做的是添加了一个附加字段“allParent”,其中包含当前类别的逗号分隔 ID 我的示例现在的表应该是
ID ParentID allParent
1 0 0
2 1 0,1
3 1 0,1
4 1 0,1
5 2 0,1,2
6 2 0,1,2
7 3 0,1,3
8 4 0,1,4
现在获取所有叶级实体的查询将是
Select * from table where (
allParent LIKE '1,%' or
allParent LIKE ',1%' or
allParent LIKE '%,1,%'
) and ID NOT IN (
Select ParentId from table where
allParent LIKE '1,%' or
allParent LIKE ',1%' or
allParent LIKE '%,1,%'
)
这对我有用