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 の別のテーブルからテーブルを更新する
