使用单个 MySQL 查询进行递归类别检索
在 Web 应用程序中,将内容组织到分层类别中很常见。复杂的类别结构(例如树)需要专门的检索处理。本文探讨了使用单个 MySQL 查询获取递归类别的最有效方法。
使用引用在 PHP 中构建类别树可以优化该过程。查询检索类别及其父 ID,这些 ID 存储在关联数组 ($nodeList) 中。该数组的结构是为了创建分层引用,其中每个节点的父节点出现在其“parent”键中。
树的构造发生在以下代码中:
foreach ($nodeList as $nodeId => &$node) { if (!$node['parent'] || !array_key_exists($node['parent'], $nodeList)) { $tree[] = &$node; } else { $nodeList[$node['parent']]['children'][] = &$node; } }
此循环迭代节点,如果一个节点没有父节点或者父节点不存在于数组中,则该节点将被添加到 $tree 数组中。否则,该节点将作为子节点添加到其父节点的“children”数组中。
结果是存储在 $tree 数组中的分层树结构,每个节点都包含子节点引用。这种单查询方法比使用递归 MySQL 查询要快得多,即使对于大型类别树也是如此。
以上是如何在单个 MySQL 查询中检索递归类别?的详细内容。更多信息请关注PHP中文网其他相关文章!