首页  >  文章  >  数据库  >  如何在单个 MySQL 查询中检索递归类别?

如何在单个 MySQL 查询中检索递归类别?

Barbara Streisand
Barbara Streisand原创
2024-11-10 19:41:02688浏览

How to Retrieve Recursive Categories in a Single MySQL Query?

使用单个 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn