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

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

DDD
リリース: 2024-12-30 12:35:13
オリジナル
999 人が閲覧しました

How Can I Dynamically Iterate Through MySQL Column Names Using a Stored Procedure?

MySQL テーブルの列名を動的に反復する

この質問では、ストアド テーブルを使用して MySQL テーブルの列名を反復する方法について説明します。ネイティブ SQL で書かれたプロシージャ。目的は、列名のリストを取得し、変数として各列名に基づいてストアド プロシージャを実行することです。

列名の取得

列名を取得するにはMySQL テーブルからの場合は、SHOW COLUMNS FROM を使用します。指示。このコマンドは、名前を含むテーブルの列に関する情報を含む結果セットを返します。

列名のループ

列名を取得したら、それらを保存できます。ループ内でカーソルを使用します。カーソルは、結果セットを行ごとに走査できるようにする反復子です。以下に例を示します。

DECLARE col_names CURSOR FOR
  SELECT column_name
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'tbl_name'
  ORDER BY ordinal_position;
ログイン後にコピー

このカーソルは、指定されたテーブルから列名を選択し、その位置で順序付けし、カーソルにcol_names という名前を付けます。

ループの実行

列名を反復処理してストアド プロシージャを実行するには、次のコマンドを使用します。ループ:

SET i = 1;
the_loop: LOOP

  IF i > num_rows THEN
    CLOSE col_names;
    LEAVE the_loop;
  END IF;

  FETCH col_names 
  INTO col_name;     

   //do whatever else you need to do with the col name

  SET i = i + 1;  
END LOOP the_loop;
ログイン後にコピー

このループは、FETCH ステートメントを使用して、次の列名を変数 Col_name に取得します。ループ内では、列名に基づいて必要なアクションを実行できます。

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

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