sql >> データベース >  >> RDS >> Mysql

PHP / MySQL:隣接リストモデルで単一のパスを取得します

    いいえ、少なくともMySQLではありません。これは、隣接リストモデル の最大の制限の1つです。 。

    限られた回数だけ自己参加を続けることができますが、それは醜く、厄介で、無制限の部門をカバーしていません。また、アプリケーション内のすべてのデータをダウンロードし、ツリーを構築して、アプリケーション内のパスを見つけることもできます。

    SQL Server 2005、Postgres 8.4、Oracle 11gなどの一部のDBMSは、共通テーブル式<を使用した再帰クエリをサポートしています。 / a> WITH キーワード。この機能を使用すると、このようなクエリを簡単に作成できますが、残念ながら、MySQLは再帰クエリをまだサポートしていません。

    代替モデル(入れ子集合モデル )、MySQLでの再帰操作をより簡単に(可能に)します:

    さらに、 @BillKarwin による次のプレゼンテーションも確認することをお勧めします。 、Stack Overflowの定期的な寄稿者:

    プレゼンテーションで説明されているクロージャテーブルモデルは、ネストされたセットの非常に有効な代替手段です。彼はこのモデルについて、SQLアンチパターン でさらに詳しく説明しています。 本(このトピックの章からの抜粋



    1. SSDTを使用して、別のデータベースのオブジェクトを参照するビューがある場合、SQL71561エラーを解決するにはどうすればよいですか?

    2. MSSQLServerでの長時間実行クエリのトラブルシューティング

    3. MySQLにウルドゥー語の文字を保存する

    4. 動的SQLでのSQLインジェクションの防止