php - 使用 mysql 查询查找所有嵌套子类别的最不密集的方法

标签 php mysql categories

我有一个数据库,其中的项目被分类。其中一些类别是嵌套的,例如:

Animals > Birds > Parrots  
Animals >  Birds > Penguin 
Animals > Mammals > Cats  
Animals > Mammals > Dogs 
Animals > Reptiles > Snakes 
Plants > Trees 
Plants > Flowers

等等

我把这些放在表格中

CATEGORY    PARENT
Animals     -
Birds       Animals
Penguin     Birds

等等

我希望能够以“动物”作为起点,并列出该类别下的所有子类别,因此对于动物,我们会列出鸟类、哺乳动物、爬行动物、鹦鹉、企鹅、猫、狗, 蛇

这可以通过单个查询实现吗?如果没有,我需要做什么

TIA

最佳答案

您可以按照下面的“修改后的预序树遍历”一文,摆脱递归并使用单个查询来使用单个 SQL 查询来查找子项计数、直接类别和子类别:

  1. Managing Hierarchical Data in MySQL

在 google.com 中搜索关键字“Modified Tree Traversal + Sitepoint”以阅读 sitepoint.com 上解释相同模式的文章。

关于php - 使用 mysql 查询查找所有嵌套子类别的最不密集的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2925671/

相关文章:

php - 将新创建的 id 值作为外键插入到另一个表的列中

PHP file_get_contents foreach

mysql - Visual Studio 和 MySQL 之间的连接问题

Magento类别导入手动指定ID

objective-c - 在 Objective-C 中使用类别的私有(private)方法 : calling super from a subclass

php - 后台 & php/jquery

信息填写后PHP下一页

mysql - 来自数据库的实体类....错误无效资源_pm

objective-c - 如何配置 Doxygen 以正确记录 Objective-C 类别

当不从服务器删除电子邮件时,PHP 电子邮件到 mysql 数据库问题