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 サイトの他の関連記事を参照してください。