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 サイトの他の関連記事を参照してください。