ホームページ > データベース > mysql チュートリアル > MySQL に CONNECT BY PRIOR 機能を実装するにはどうすればよいですか?

MySQL に CONNECT BY PRIOR 機能を実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-06 12:51:41
オリジナル
596 人が閲覧しました

How to Implement CONNECT BY PRIOR Functionality in MySQL?

MySQL と同等の事前接続による接続

MySQL では、階層テーブルからデータを抽出するために「CONNECT BY PRIOR」句が使用されます。この句は、データ内の親子関係を扱う場合に特に有益です。ただし、MySQL は本質的に「CONNECT BY PRIOR」に相当するものをサポートしていません。

子ノード取得の代替ソリューション

指定された親 ID ですべての子ノードを取得するにはMySQL では、反復アプローチを採用できます。

  1. 次の行をすべて選択します。 「ParentId」フィールドは指定された ID と一致します。
  2. 選択した行から「Id」値を収集します。
  3. 収集された「Id」値がなくなるまで、手順 1 と 2 を繰り返します。取得する子ノード。

例クエリ

このアプローチを実証するために、次のクエリを検討します。

SELECT *
FROM tb_Tree
WHERE ParentId = 1;
ログイン後にコピー

このクエリは、「ParentId」フィールドが 1 に等しいすべての行を取得し、その子を表します。 「フルーツ」ノード。取得した「Id」値を使用して、ネストされた子ノードを再帰的に取得できます。

代替手法

階層の深さがわかっている場合は、別のアプローチを使用できます。複数の左外部結合を使用して、最大の深さに達するまでテーブルをそれ自体に結合します。あるいは、ツリー表現をネストされたセットに変換すると、MySQL の階層クエリを簡素化できます。

以上がMySQL に CONNECT BY PRIOR 機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート