ホームページ >データベース >mysql チュートリアル >MySQL は 1 つのクエリでツリー構造テーブルを任意の深さまでクエリできますか?

MySQL は 1 つのクエリでツリー構造テーブルを任意の深さまでクエリできますか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-06 17:33:40446ブラウズ

Can MySQL Query a Tree Structure Table to Any Depth in One Query?

MySQL のツリー構造テーブルは 1 回の試行で任意の深さまでクエリできますか?

それが実現可能かどうかという疑問が生じます。 MySQL のツリー構造テーブルを走査し、深さに関係なくすべての子孫または祖先を 1 回の操作で取得します。

回答

はい、可能です。 Joe Celko の「Trees and Hierarchies in SQL for Smarties」で概説されているように、修正された Preorder Tree Traversal 手法を使用すると、これが可能になります。以下は参考資料からの抜粋です:

SELECT *
FROM tree
ORDER BY FIELD(`left`, @field_list_all, @field_list_current, @field_list_children)
LIMIT 1

このクエリは、変数 (@field_list_all) として保存された「フィールド リスト」を利用して、トラバーサルを追跡し、効率的に処理されるノードを識別します。包括的な例については、指定されたドキュメントを参照してください。

以上がMySQL は 1 つのクエリでツリー構造テーブルを任意の深さまでクエリできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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