MySQLではループ処理を記述する場合に、どのように記述するのですか?

MySQL では、ループ制御ステートメントを使用してループの実装が可能です。次のタイプのループがサポートされています。

  1. WHILEループ: 与えられた条件が真である間、一連の文を繰り返し実行します。
WHILE condition DO
    statements;
END WHILE;

例え:

SET @counter = 0;
WHILE @counter < 10 DO
    SET @counter = @counter + 1;
    SELECT @counter;
END WHILE;
  1. REPEAT ループ: 指定した条件が真になるまで、一連のステートメントを繰り返す。
REPEAT
    statements;
UNTIL condition;
END REPEAT;

例えば:

SET @counter = 0;
REPEAT
    SET @counter = @counter + 1;
    SELECT @counter;
UNTIL @counter >= 10 END REPEAT;
  1. ループ処理:終わりがない無限のループ。ループ内では「LEAVE」文を使ってループ処理の中断が必要。
loop_label: LOOP
    statements;
    IF condition THEN
        LEAVE loop_label;
    END IF;
END LOOP;

例えば、

SET @counter = 0;
loop_label: LOOP
    SET @counter = @counter + 1;
    SELECT @counter;
    IF @counter >= 10 THEN
        LEAVE loop_label;
    END IF;
END LOOP;

循环の中で、クエリ、挿入、更新などの任意のSQL文を実行できます。また、循環の間、変数を使用してカウンタ、結果の格納などの操作を行うことができます。

bannerAds