我在MySQL
+----+-----------+------------+
| ID | ID_parent | name |
+----+-----------+------------+
| 7 | 5 | .... |
| 10 | 7 | .... |
| 11 | 5 | .... |
| 20 | 7 | .... |
| 30 | 10 | .... |
| 45 | 20 | .... |
对于ID=7
如何选择其锚点为7
=>的所有子项? (10,20,30,45)
?
答案 0 :(得分:0)
我们直接添加一个额外的列ancestors
,我们将孩子的所有祖先父母分隔为,
,如此
+----+-----------+------------+------------+
| ID | ID_parent | name | ancestors |
+----+-----------+------------+------------+
| 7 | 5 | .... | ,7, |
| 10 | 7 | .... | ,10,7, |
| 11 | 5 | .... | ,11,5, |
| 20 | 7 | .... | ,20,7, |
| 30 | 10 | .... | ,30,10,7, |
| 45 | 20 | .... | ,45,20,7, |
在我的情况下,我选择将孩子和它的祖先放在,
和我开始之间,然后我完成,
可能会根据情况使用不同的方法。
所以现在我们可以轻松地获得父母的孩子或者获得孩子的父母祖先。
LIKE %,idparent,%
ancestors
字段
我们可以得到所有的祖先,所以我们循环它们。