如何在 MySQL 中获取树结构中的数据? [复制]
Posted
技术标签:
【中文标题】如何在 MySQL 中获取树结构中的数据? [复制]【英文标题】:How to fetch data in a tree structure in MySQL? [duplicate] 【发布时间】:2018-11-23 20:02:45 【问题描述】:我在 mysql 中有一个表,表中的每个元组都是同一个表中元组的子级。为此,我将数据主 ID 插入为合作伙伴 ID。请参考以下示例。
这里的'A'父母有两个孩子'B'和'C',同样,'B'有'D'和'C'有'E'作为他们的孩子。下图显示了一个示例
现在,来到问题,我想获取给定父母的所有孩子。假设如果我通过 G
的 id 7,它应该获取 J
、K
和 L
记录。如果我通过A
的 id 1 它应该获取所有记录。如何在 SQL 查询中实现这一点?我不知道如何构建这个 MySQL 查询。
【问题讨论】:
【参考方案1】:这可以使用递归查询来完成,如下所示。
SELECT id,
name,
parent
FROM (SELECT * FROM items
ORDER BY parent, id) items_sorted,
(SELECT @iv := '5') initialisation
WHERE find_in_set(parent, @iv)
AND length(@iv := concat(@iv, ',', id));
查看this fiddle 以了解实际情况。另外,我提到的this is a very similar question 来创建这个答案。
下次,请尝试提供Minimal, Complete and Verifiable Example(对于这种情况可能是SQL Fiddle),以便愿意回答的人方便。
【讨论】:
以上是关于如何在 MySQL 中获取树结构中的数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何通过java代码复制MySQL中新建数据库中的数据库结构?