MySQL の For ループ
このチュートリアルでは、MySQL で for
ループを使用する方法を学習します。
for
ループは通常、特定の条件をクエリするために使用されます。簡単に言うと、これらのループは、特定の事前定義された条件が満たされるまで、MySQL で実行され続けます。
設定された条件が満たされると、検討中の for
ループの実行が終了します。この for
ループが終了すると、コンソールに出力された、またはデータ構造に格納されたループ結果を確認できます。
このループの詳細と実装について詳しく理解しましょう。
MySQL で for
ループを実行または実行するには、ストアドプロシージャを作成する必要があります。この手順は、繰り返し実行するために MySQL クエリを書き直さないようにするために、一緒に記述された MySQL ステートメントのコレクションと呼ばれることもあります。
MySQL でストアドプロシージャを作成する方法は複数あります。これについては、別のチュートリアルで詳しく説明します。MySQL の特定のデータベースで for
ループのストアドプロシージャを作成する方法を理解しましょう。
ダミーデータベースを作成しましょう。このデータベースには boatdb
という名前を付けることができます。これは、特定の会社に向けて出航するように設定されたさまざまなボートを指します。これは、次のクエリを使用して実行できます。
CREATE DATABASE boatdb;
これを実行すると、ディレクトリに boatdb
という名前の新しいデータベースがあることがわかります。
これで、このデータベースを使用できるようにすることで、このデータベースでクエリとプロシージャを実行できます。この新しく作成されたデータベースは、次のクエリで使用できます。
USE boatdb;
これにより、検討中の現在のデータベースが変更されます。
次に、for
ループを使用してストアドプロシージャを記述します。特に、-5
から 0
までの値をコンマ区切りで出力してみましょう。
-- Start of our procedure
delimiter //
CREATE procedure boatdb.for_loop_example()
wholeblock:BEGIN
DECLARE x INT;
DECLARE str VARCHAR(255);
SET x = -5;
SET str = '';
loop_label: LOOP
IF x > 0 THEN
LEAVE loop_label;
END IF;
SET str = CONCAT(str,x,',');
SET x = x + 1;
ITERATE loop_label;
END LOOP;
SELECT str;
END//
-- End of Procedure
上記の手順でわかるように、変数 x
があり、最初は -5
に設定されています。ループ内の反復ごとに x
の値を更新し、x
の値をコンマで出力して隣接する値を区切ります。
プロシージャを記述して使用するように設定したら、MySQL の CALL
ステートメントを使用してこのプロシージャを呼び出すことができます。それは次のように説明することができます。
call for_loop_example();
上記のステートメントでわかるように、boatdb
データベースのストアドプロシージャである for_loop_example()
を呼び出します。
出力:
str
-5,-4,-3,-2,-1,0,
以前に目指したように、ストアドプロシージャを使用して for
ループを使用して、-5
から 0
までの値を出力します。
x
の値が最初に出力されるようにループを設計したため、出力の最後にコンマがあります。次に、コンマが生成されるため、x > 0
という終了条件に基づいて、出力の最後に追加のコンマがあります。したがって、MySQL のストアドプロシージャを使用すると、データをクエリして期待どおりに意味のある結果を生成できる for
ループを効率的に作成できます。
関連記事 - MySQL Query
- MySQL でパーセンテージを計算する
- MySQL のどこにあるのか
- MySQL データをアルファベット順に並べ替える
- MySQL で低速クエリログを有効にする
- MySQL で最新のレコードを選択
- MySQL の別のテーブルからテーブルを更新する