MySQL のストアド プロシージャは、データベースに保存され、繰り返し呼び出して実行できる一連の SQL ステートメントです。 MySQL でストアド プロシージャを定義するための構文は基本的に関数と同じですが、ストアド プロシージャにはより多くの SQL ステートメントと制御ステートメントを含めることができるため、より複雑な操作を実行できます。 MySQL ストアド プロシージャでは、配列はデータの保存、読み取り、変更、削除に広く使用されています。この記事では、配列の定義、配列の操作、配列の使用例など、MySQL ストアド プロシージャの配列について詳しく説明します。
1. 配列の定義
配列は、同じデータ型の直列に接続されたデータ要素で構成される順序付けされたデータ構造です。 MySQL ストアド プロシージャでは、変数またはテーブルによって配列を実装できます。変数によって実装された配列は 1 次元または多次元の配列を定義でき、テーブルによって実装された配列はテーブル配列を定義できます。これら 3 つの配列の定義方法を以下に紹介します。
MySQL ストアド プロシージャでは、変数によって 1 次元配列を実装できます。 1 次元配列の定義方法は変数の定義と似ており、変数名の後に括弧 [] を追加し、括弧内に配列の長さを指定するだけです。たとえば、1 次元の整数配列を定義します。
DECLARE arr1 INT[5];
ここで、arr1 は配列名、INT はデータ型、5 は配列の長さです。ループ ステートメントを使用して配列を走査できます。例:
DECLARE i INT;
SET i = 1;
WHILE i <= 5 DO
SET arr1[i] = i; SET i = i+1;
END WHILE;
上記のコードは、配列の各要素に 1 ~ 5 を割り当てます。
MySQL ストアド プロシージャでは、1 次元配列のネストされた定義によって多次元配列を実装できます。たとえば、2 次元の整数配列を定義します。
DECLARE arr2 INT3;
ここで、arr2 は配列名、INT はデータ型、3 と 4 は 2 つの配列の長さです。寸法。配列を走査するには、二重ループ ステートメントを使用できます。例:
DECLARE i INT;
DECLARE j INT;
SET i = 1;
WHILE i
SET j = 1; WHILE j <= 4 DO SET arr2[i][j] = i*j; SET j = j+1; END WHILE; SET i = i+1;
END WHILE;
上記のコードは、配列の各要素を、それが配置されている行数と列数の積に割り当てます。
MySQL ストアド プロシージャでは、テーブル配列は複数のテーブルで構成される配列であり、各テーブルは同じ構造を持っています。たとえば、3 つのテーブルを含むテーブル配列を定義します。
DECLARE tab TABLE(
id INT, name VARCHAR(20), age INT
);
DECLARE arr3 tab[3];
ここで、tab はテーブルの構造、id、name、age はテーブルの列名、arr3 はテーブル配列の名前、3 は配列の長さです。ループ ステートメントを使用して、配列内の各テーブルを反復処理できます。例:
DECLARE i INT;
SET i = 1;
WHILE i
SET @sql = CONCAT('INSERT INTO arr3[', i, '] VALUES(1, "Tom", 20)'); PREPARE stmt FROM @sql; EXECUTE stmt; SET i = i+1;
END WHILE;
DEALLOCATE PREPARE stmt;
上記のコードは、arr3 という名前のテーブル配列内の各テーブルにデータを挿入します。
2. 配列操作
MySQL ストアド プロシージャの配列操作には、主に配列へのアクセス、変更、削除が含まれます。これらの操作方法を以下に紹介します。
配列要素へのアクセスは、0 から始まる添字を使用して実現できます。たとえば、1 次元配列 arr1 の 3 番目の要素にアクセスするには:
SELECT arr1[2];
2 次元配列 arr2 の 2 行目、3 列目の要素にアクセスするには:
SELECT arr22;
テーブル配列 arr3 の 2 番目のテーブル内のすべてのデータにアクセスします:
SELECT * FROM arr3[2];
DECLARE j INT;
DECLARE temp INT;
SET i = 1;
WHILE i < ;= 4 DO
SET j = i+1; WHILE j <= 5 DO IF arr1[i] > arr1[j] THEN SET temp = arr1[i]; SET arr1[i] = arr1[j]; SET arr1[j] = temp; END IF; SET j = j+1; END WHILE; SET i = i+1;END WHILE;ソートされた配列の出力結果は次のとおりです: SELECT * FROM arr1;
DECLARE str VARCHAR(100);
SET i = 1;
SET str = '';
WHILE i <= 5 DO
IF i = 1 THEN SET str = CONCAT(str, arr1[i]); ELSE SET str = CONCAT(str, ',', arr1[i]); END IF; SET i = i+1;END WHILE;
SELECT str;
この記事では、配列の定義、配列の操作、配列の使用例など、MySQL ストアド プロシージャの配列について紹介します。配列は、順序付けられた効率的なデータ保存方法として、保存プロセスにおいて重要な応用価値を持っています。この記事を読むことで、読者は MySQL ストアド プロシージャでの配列の適用方法を習得し、実際の開発で配列を柔軟に適用してより複雑な操作を実行できるようになると思います。
以上がmysqlストアドプロシージャの配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。