ストアド プロシージャは MySQL の階層 BOM ツリーを効率的に移動するにはどうすればよいですか?
Dec 06, 2024 pm 02:39 PMツリー トラバーサル用の MySQL 再帰クエリ
問題:
次のような部品表 (BOM) テーブルがあるとします。アイテムとその親 ID。目標は、アイテムの階層表現をツリー構造の形式で取得することです。一般的な単一レベルのクエリや再帰関数の使用は非効率的である可能性があります。
解決策:
MySQL の SQL 言語は再帰クエリをネイティブにサポートしていません。この制限を克服するには、カスタム ストアド プロシージャ (SP) を作成してツリー トラバーサル機能を実現できます。
提案された SP:
次の SP を使用して、ツリー トラバーサル機能を実現できます。 BOM Tree:
- GetParentIDByID: 指定された項目の親 ID を検索します。
- GetAncestry: 項目の祖先系統を取得します。指定されたlevel.
- GetFamilyTree: 指定されたルート項目から始まる BOM ツリー全体の階層表現を生成します。
Usage:
SP を使用するには、次の手順に従ってください手順:
- 提供された SQL コードを使用して MySQL データベースに SP を作成します。
- ルート項目 ID をパラメータとして GetFamilyTree SP を呼び出します。
- SP は、 tree.
例:
たとえば、次のデータを含む BOM テーブルがある場合:
1 2 3 4 5 6 7 8 9 |
|
GetFamilyTree の呼び出し(1) は次の階層を返します。表現:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
この表現はツリー内のすべての子分岐を提供し、項目の関係を効率的に取得できるようにします。
以上がストアド プロシージャは MySQL の階層 BOM ツリーを効率的に移動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
