ホームページ > データベース > mysql チュートリアル > MySQL データベースからリンクされたリスト データを正しい順序でフェッチするにはどうすればよいですか?

MySQL データベースからリンクされたリスト データを正しい順序でフェッチするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-04 13:03:29
オリジナル
194 人が閲覧しました

How to Fetch Linked List Data from a MySQL Database in the Correct Order?

MySQL データベースからリンク リストを取得する

MySQL データベースに保存されているリンク リスト構造から正しい順序でデータを取得するのは難しい場合があります。 MySQL は再帰クエリをサポートしていないためです。

解決策 1:ネストされた結合

MySQL はネイティブの再帰クエリ サポートを提供しませんが、ネストされた結合を使用すると同様の効果を実現できます。同じテーブルの複数のインスタンスを結合することにより、リンクされたリストを順番にたどることができます。次のクエリはこのアプローチを示していますが、ネストされた構造のため、大規模なリンク リストの場合は非効率になる可能性があることに注意してください:

<code class="sql">SELECT * FROM mytable t1
LEFT JOIN mytable t2 ON (t1.next_id = t2.id)
LEFT JOIN mytable t3 ON (t2.next_id = t3.id)
LEFT JOIN mytable t4 ON (t3.next_id = t4.id)
LEFT JOIN mytable t5 ON (t4.next_id = t5.id)
LEFT JOIN mytable t6 ON (t5.next_id = t6.id)
LEFT JOIN mytable t7 ON (t6.next_id = t7.id)
LEFT JOIN mytable t8 ON (t7.next_id = t8.id)
LEFT JOIN mytable t9 ON (t8.next_id = t9.id)
LEFT JOIN mytable t10 ON (t9.next_id = t10.id);</code>
ログイン後にコピー

解決策 2: 外部解析

もう 1 つの解決策は、標準の SELECT クエリを使用して順序付けされていない方法でデータを取得し、そのリンク リスト構造を解析することです。クライアント側。このアプローチは、複雑なツリー状のデータ構造の場合により効率的です。

外部ソフトウェア ソリューション

Oracle や Microsoft SQL Server などの一部のブランドのデータベースでは、追加の SQL が提供されています。再帰クエリの構文。ただし、この機能は MySQL ではサポートされていません。

以上がMySQL データベースからリンクされたリスト データを正しい順序でフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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