首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从MySql数据库中检索分层数据

从MySql数据库中检索分层数据
EN

Stack Overflow用户
提问于 2016-08-02 08:31:53
回答 1查看 1.1K关注 0票数 0

这是我的Mysql数据库

代码语言:javascript
运行
复制
╔════╦═══════════╗
║ ID ║ Parent_ID ║
╠════╬═══════════╣
║  1 ║         0 ║
╠════╬═══════════╣
║  2 ║         1 ║
╠════╬═══════════╣
║  3 ║         1 ║
╠════╬═══════════╣
║  4 ║         3 ║
╠════╬═══════════╣
║  5 ║         4 ║
╚════╩═══════════╝

我想达到的目标是:

当用户搜索 ID 1 时,我希望获得所有元素( Parent_ID 为1),以及具有E 210<代码>E 1111<代码>E 212E 113的元素,以及它们的父或大父母亲等等的ID。

或仅仅是ID 1.的所有后代

示例:

  1. 如果用户搜索1,则算法应该给出结果。 {2,3, 4,5 } -4,5因为1是他们的祖父母。
  2. 如果用户搜索2,则算法应该给出空结果{},因为没有任何元素有2作为Parent_ID
  3. 如果用户搜索3,算法应该给出结果{4,5} -5,因为3是它的父级。

从数据库中保存和检索这类数据的好方法是什么?

我正在使用Java和MySQL。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-02 08:40:00

看到您的数据模型,您无法在一个SQL查询中完成它,因为您需要一个未知的递归级别。您需要创建一个函数或存储过程来迭代后续查询的结果。

这个答案可能对你有帮助:https://dba.stackexchange.com/questions/30021/mysql-tree-hierarchical-query

编辑

如果您总是查询根父(即可能有子行但没有父级的行),则可以将该id存储在每一行中,并按该列进行查询:

代码语言:javascript
运行
复制
╔════╦═══════════╦════════════════╗
║ ID ║ Parent_ID ║ Root_Parent_ID ║
╠════╬═══════════╬════════════════╣
║  1 ║         0 ║              1 ║
╠════╬═══════════╬════════════════╣
║  2 ║         1 ║              1 ║
╠════╬═══════════╬════════════════╣
║  3 ║         1 ║              1 ║
╠════╬═══════════╬════════════════╣
║  4 ║         3 ║              1 ║
╠════╬═══════════╬════════════════╣
║  5 ║         4 ║              1 ║
╠════╬═══════════╬════════════════╣
║  6 ║         0 ║              6 ║
╠════╬═══════════╬════════════════╣
║  7 ║         6 ║              6 ║
╠════╬═══════════╬════════════════╣
║  8 ║         7 ║              6 ║
╚════╩═══════════╩════════════════╝

然后您只需查询:SELECT * FROM mytable WHERE Root_Parent_ID = 1

否则,我建议您更深入地研究如何更有效地存储这些数据:https://blogs.msdn.microsoft.com/anthonybloesch/2006/02/15/hierarchies-trees-in-sql-server-2005/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38715462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档