ホームページ >データベース >mysql チュートリアル >ストアド プロシージャを使用して MySQL 列名を反復するにはどうすればよいですか?

ストアド プロシージャを使用して MySQL 列名を反復するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-02 21:53:43278ブラウズ

How Can I Iterate Through MySQL Column Names Using Stored Procedures?

ストアド プロシージャを使用した MySQL 列名の反復処理

特にストアド プロシージャ内で、MySQL テーブルの列名にアクセスして反復処理する必要性ネイティブ SQL を使用するプロシージャは、MySQL 開発者の間で共通の課題を引き起こします。この包括的なガイドでは、カラム名を取得し、カーソル ベースのループを使用してそれらを動的に利用する方法を説明します。

MySQL は SHOW COLUMNS FROM を提供します。テーブル内の列のリストを取得するコマンド。これらの名前を反復処理するには、カーソル ベースのループが使用されます。 DECLARE ステートメントは、col_names という名前のカーソルを初期化します。カーソルには、INFORMATION_SCHEMA.COLUMNS テーブルから列名を取得する SELECT クエリが設定され、目的のテーブル名を指定して結果を順序位置で並べ替えます。

FOUND_ROWS() 関数を使用すると、行数 (つまり、列名) は num_rows 変数に記録されます。次に、SET ステートメントを使用してループが開始され、現在の反復インデックスを表す i 変数に 1 が割り当てられます。

the_loop ラベルはループの開始点として機能します。 IF ステートメントは、i インデックスが num_rows カウントを超えているかどうかをチェックします。存在する場合、ループは終了し、CLOSE col_names ステートメントを使用してカーソルが閉じられます。

ループ内で、FETCH ステートメントはカーソルから次の行を取得し、列名をcol_name 変数に割り当てます。この値は、パラメーターとしてストアド プロシージャに渡すなど、さまざまな目的に使用できます。

SET ステートメントは、i インデックスを 1 つ増やして、後続の反復で次の列名に移動します。ループはすべての列名が処理されるまで継続し、各列名が動的にアクセスされるようにします。

以上がストアド プロシージャを使用して MySQL 列名を反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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