ホームページ  >  記事  >  データベース  >  MySQL のリンク リスト構造からデータをフェッチするにはどうすればよいですか?

MySQL のリンク リスト構造からデータをフェッチするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 02:03:02773ブラウズ

How to Fetch Data from a Linked List Structure in MySQL?

MySQL データベースのリンク リストからのデータの取得

次のようなリンク リスト構造を含むテーブルを持つ MySQL データベース内提供:

table
    id INT NOT NULL PRIMARY KEY
    data ..
    next_id INT NULL

課題は、リンク リストと同じ順序でデータを取得することにあります。残念ながら、MySQL は、リンク リスト構造の取得に必要な再帰クエリを直接サポートしていません。

ただし、この制限を回避するアプローチはあります。 1 つの方法は、指定された応答に示すように、JOIN クエリを使用してリンク リストを手動で走査することです。

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);

このクエリは、リンク リストの幅優先走査を効果的に実行し、すべての行を次の順序で返します。リスト内での位置。

コメントで提案されているように、リンクされたリストのデータを NoSQL データベースに保存することもできます。通常、これにより、より良い結果が得られます。非リレーショナル データ構造の処理のサポート。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。