MySQL:获取所有子类别,后代

标签 mysql

我将 mysql 表定义为:

类别:category_id、category_name、parent_category_id

我正在寻找一个很好的 sql 查询来检索给定 category_id 的所有 DESCENDANTS。这意味着,它的 child ,以及它的 child 的 child 。

如果这有帮助,我们可以假设最大级别数 (3)。此查询可以在任何级别(根、级别 2、级别 3)发送。

谢谢!

内森

最佳答案

有几种方法可以将树存储在数据库中。在 sitepoint 上有一篇很棒的文章描述了所有的技术:

http://articles.sitepoint.com/article/hierarchical-data-database/2

如果您希望能够在一次查询中获取一棵树的整个部分,最合适的方法是修改后的先序树遍历。

这种技术也称为嵌套集。如果您需要有关该主题的更多文献,这里有更多信息:

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

关于MySQL:获取所有子类别,后代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1690868/

相关文章:

php - 需要一个 PHP MySQL 脚本来搜索数据库中的关键字

mysql - 使用 session ID 过滤数据

mysql - 多列的平均值 + 每列的单独条件

mysql - sql.DB.Exec 时对 SQL 中的自定义类型感到困惑

php - MySQL User_ID - 需要帮助

c# - EF6 迁移失败

php - 使用 PHP 将数组数据存储到 mySQL 数据库

sql - 如何在开始时将相同的输入传递给所有 sql 文件一次?

mysql - 如何在第一个分隔符之后显示列数据

php - 更轻松地访问和更改 PHP MySQL 字段