ホームページ > データベース > mysql チュートリアル > CTE を使用せずに MSSQL CTE クエリを MySQL に変換するにはどうすればよいですか?

CTE を使用せずに MSSQL CTE クエリを MySQL に変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-21 00:37:12
オリジナル
466 人が閲覧しました

How Can I Convert My MSSQL CTE Query to MySQL Without Using CTEs?

MSSQL CTE クエリを MySQL に変換する

MSSQL には、特定のカテゴリ ツリーをボトムアップで構築する複雑な CTE クエリがあります。カテゴリID。このクエリを CTE をサポートしていない MySQL に変換する方法を知りたいと考えています。

MySQL の制限

残念ながら、MySQL は共通テーブル式 (CTE) をサポートしていません。 )。これは、CTE クエリを MySQL に直接変換できないことを意味します。

再帰ストアド プロシージャ

CTE では再帰クエリが可能であるため、ストアド プロシージャを実装する必要があります。 MySQL を使用しても同じ結果が得られます。再帰ストアド プロシージャは、自身の実行内で自身を参照できるため、階層的なデータ処理が可能になります。

前の例

以前に回答された質問は、再帰ストアド プロシージャを実装するための良い出発点となります。 MySQL のストアド プロシージャ:

  • MySQL の階層データからの深さベースのツリーの生成 (いいえCTE)

この回答では、再帰クエリを使用して階層データから深さベースのツリーを生成するストアド プロシージャを作成する方法を示します。このアプローチを特定の CTE クエリに適用できます。

実装

ストアド プロシージャの具体的な実装は、カテゴリ テーブルの構造と目的の出力によって異なります。 。ただし、一般的な手順は次のとおりです。

  1. 必要に応じて入力パラメータと出力パラメータを使用してストアド プロシージャを作成します。
  2. ストアド プロシージャ内で再帰クエリを使用して、次のカテゴリ ツリーを走査します。指定されたカテゴリ ID。
  3. 再帰クエリの結果を、保存されたクエリの出力として返します。

これらの手順に従うことで、MSSQL CTE クエリと同様の機能を実行し、再帰的に階層データを処理する方法を提供するストアド プロシージャを MySQL に実装できます。

以上がCTE を使用せずに MSSQL CTE クエリを MySQL に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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