ホームページ >データベース >mysql チュートリアル >MySQL LOOP ステートメントはストアド プロシージャでどのように使用されますか?

MySQL LOOP ステートメントはストアド プロシージャでどのように使用されますか?

WBOY
WBOY転載
2023-08-26 19:13:101291ブラウズ

MySQL LOOP语句如何在存储过程中使用?

MySQL は LOOP ステートメントを提供します。これにより、コードのブロックを繰り返し実行でき、ループ ラベルの使用に柔軟性が加わります。ループを制御できる次の 2 つのステートメントがあります。

LEAVE ステートメント

これにより、check を待たずにループをすぐに終了できます

Iteration ステートメント

これにより、その下のコード全体をスキップして、新しい反復を開始できます。

ストアド プロシージャでの LOOP ステートメントの使用を示します。次のストアド プロシージャは、2、4、6、8 などの偶数の文字列を構築します。 -

mysql> Delimiter //
mysql> CREATE PROCEDURE LOOP_loop()
    -> BEGIN
    -> DECLARE A INT;
    -> DECLARE XYZ VARCHAR(255);
    -> SET A = 1;
    -> SET XYZ = '';
    -> loop_label: LOOP
    -> IF A > 10 THEN
    -> LEAVE loop_label;
    -> END IF;
    -> SET A = A + 1;
    -> IF (A mod 2) THEN
    -> ITERATE loop_label;
    -> ELSE
    -> SET XYZ = CONCAT(XYZ,A,',');
    -> END IF;
    -> END LOOP;
    -> SELECT XYZ;
    -> END //
Query OK, 0 rows affected (0.07 sec)

このプロシージャを呼び出すと、次の結果が表示されます。 -

mysql> DELIMITER ;
mysql> CALL LOOP_loop ();
+-------------+
| XYZ         |
+-------------+
| 2,4,6,8,10, |
+-------------+
1 row in set (0.04 sec)
Query OK, 0 rows affected (0.04 sec)

上記のクエリでは、A の値が 10 より大きい場合、ループが発生します。 LEAVE ステートメントを終了します。 A の値が奇数の場合、ITERATE ステートメントはそれ以下のものをすべて無視し、新しい反復を開始します。 A の値が偶数の場合、ELSE ステートメントのブロックは偶数を使用して文字列を構築します。

以上がMySQL LOOP ステートメントはストアド プロシージャでどのように使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。