gpt4 book ai didi

mysql - 选择父项的所有子项

转载 作者:行者123 更新时间:2023-11-30 22:43:17 25 4
gpt4 key购买 nike

我在 MySQL 上有这张表

+----+-----------+------------+
| ID | ID_parent | name |
+----+-----------+------------+
| 7 | 5 | .... |
| 10 | 7 | .... |
| 11 | 5 | .... |
| 20 | 7 | .... |
| 30 | 10 | .... |
| 45 | 20 | .... |

对于 ID=7 我怎样才能选择它的 anchor 是 7 的所有 child => (10,20,30,45) ?

最佳答案

我们决定添加一个额外的列 ancestors ,我们将一个 child 的所有祖先 parent 都用 分隔, 像这样

+----+-----------+------------+------------+
| 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, |

在我的例子中,我选择把 child 和它的祖先放在 , 之间,我开始和结束 , 也许可以根据情况使用不同的方法。

所以现在我们可以很容易地得到 parent 的 child 或 child 的 parent 祖先。

  • 要找到 parent 的所有 child ,我们使用 LIKE %,idparent,%
  • 为了找到一个 child 的所有 parent ,我们拆分了这个 child 的字段 ancestors我们可以得到所有的祖先,所以我们循环遍历它们。

关于mysql - 选择父项的所有子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30465198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com