ホームページ  >  記事  >  データベース  >  単一の MySQL クエリで再帰的なカテゴリを取得するにはどうすればよいですか?

単一の MySQL クエリで再帰的なカテゴリを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 19:41:02692ブラウズ

How to Retrieve Recursive Categories in a Single MySQL Query?

単一 MySQL クエリによる再帰的カテゴリ取得

Web アプリケーションでは、コンテンツを階層カテゴリに編成するのが一般的です。ツリーなどの複雑なカテゴリ構造の場合、検索には特殊な処理が必要です。この記事では、単一の MySQL クエリで再帰的なカテゴリをフェッチする最も効率的な方法について説明します。

参照を使用して PHP でカテゴリ ツリーを構築すると、プロセスが最適化されます。クエリは、連想配列 ($nodeList) に格納されているカテゴリとその親 ID を取得します。配列は、各ノードの親が「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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。