MySQL - 如何查询树?

发布于 2024-11-07 17:19:44 字数 152 浏览 0 评论 0原文

假设我有下表:

TABLE: category
 - category_id (PK)
 - parent_id (FK)
 - name

给定category_id的值,如何返回给定的category_id及其所有后代?

Say I have the following table:

TABLE: category
 - category_id (PK)
 - parent_id (FK)
 - name

Given a value for category_id, how do I return the given category_id and all its descendants?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滴情不沾 2024-11-14 17:19:44

如果你想要一个级别,你可以在条件category_id = id OR Parent_id = id上执行SELECT - 但是使用MySQL,你无法获得带有单个查询。

可以编写一个存储过程来遍历所有中间结果并选取子子结果,但这确实不是很简洁。

相反,您可以重新设计您的桌子。在 MySQL 开发人员网站上,有一篇好文章,介绍了如何可以在表中存储分层数据,并提供比简单使用parent_id更灵活的设计。

If you want a single level, you'd do a SELECT on the condition category_id = id OR parent_id = id - but with MySQL, you cannot get a complete tree with a single query.

You can write a stored procedure to go through all of the intermediate results and pick up sub-children, but that really isn't very neat.

Instead, you can redesign your table. On the MySQL developer site, there is a nice article about how you can store hierarchical data in a table, and provides a design which is much more flexible than simply using a parent_id.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文