ホームページ > データベース > mysql チュートリアル > ネイティブ SQL を使用して MySQL の列名を反復処理する方法

ネイティブ SQL を使用して MySQL の列名を反復処理する方法

Linda Hamilton
リリース: 2024-12-29 12:12:10
オリジナル
255 人が閲覧しました

How to Iterate Through MySQL Column Names Using Native SQL?

ネイティブ SQL を使用した MySQL の列名の反復処理

SQL を使用して MySQL テーブルの列名を取得および反復処理するには、次のアプローチの採用を検討してください。

1.列名の取得

SHOW COLUMNS FROM [table_name] ステートメントを使用して、指定したテーブル内のすべての列名のリストを取得します。このコマンドは、各行が単一の列を表し、列名などのメタデータを含む結果セットを生成します。

SHOW COLUMNS FROM table_name;
ログイン後にコピー

2.カーソルの作成

列名の反復処理を有効にするには、DECLARE col_names CURSOR FOR 構文を使用してカーソルを作成します。ここで、col_names はカーソルの名前を表します。カーソル定義内で、列名を取得するクエリを指定し、列名が順序位置で順序付けされていることを確認します。

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

3.列数の決定

ループ制御を容易にするために、FOUND_ROWS() 関数を実行し、結果を変数 num_rows に格納します。この値は、カーソル クエリによって取得された行 (したがって列) の合計数を表します。

SELECT FOUND_ROWS() INTO num_rows;
ログイン後にコピー

4。列の反復

SET i = 1 ステートメントを使用してループに入ります。ここで、i は 1 に初期化された反復子変数です。ループ内で、FETCH col_names INTOcol_name ステートメントを使用して各列名を取得します。

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;
ログイン後にコピー

5. 順次、col_name 変数に格納されます。ストアド プロシージャの実行

ループ内で、オプションで列名を変数として使用してストアド プロシージャを実行できます。たとえば、次のステートメントは sp_my_proc という名前のストアド プロシージャを呼び出し、col_name をパラメータとして渡します:

CALL sp_my_proc(col_name);
ログイン後にコピー

6。カーソルを閉じる

ループが完了したら、CLOSE ステートメントを使用してカーソルを閉じ、関連するリソースを解放します。

CLOSE col_names;
ログイン後にコピー

以上がネイティブ SQL を使用して MySQL の列名を反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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