ホームページ >データベース >mysql チュートリアル >SQLite3 で再帰クエリを実行して階層データを取得するにはどうすればよいですか?
SQLite3 の再帰クエリ
SQLite3 では、親子を含むテーブルから階層データを取得する再帰クエリを実行できます。特定のスーパーパートのすべてのサブパートを検索するなどの関係。これを実現するには、SQLite3 バージョン 3.8.3 以降でサポートされている WITH RECURSIVE 構文を使用できます。
WITH RECURSIVE SubParts AS ( SELECT Part, SuperPart, 1 AS Level FROM Part WHERE SuperPart = 'eZ00' UNION ALL SELECT p.Part, p.SuperPart, s.Level + 1 FROM Part AS p JOIN SubParts AS s ON p.SuperPart = s.Part ) SELECT * FROM SubParts;
WITH RECURSIVE ステートメントは、元の行とLevel という名前の列。親行の 1 に初期化されます。 UNION ALL 句は、現在の行のサブパートに一致する行を選択し、レベルを 1 ずつ増やすことによって再帰的なステップを実行します。その後、クエリは SubParts テーブルからすべての行を返します。
SQLite3 より前3.8.3
SQLite3 バージョン 3.8.3 より前、再帰的クエリはサポートされていませんでした。マルチレベル階層のクライアント コードで再帰をエミュレートするには、次の手順に従います。
以上がSQLite3 で再帰クエリを実行して階層データを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。