MySQL ストアド プロシージャは、入力パラメータを受け取り、SQL ステートメントを実行し、結果を出力できるプリコンパイル済みコード セグメントの一種です。ストアド プロシージャは通常、複雑な SQL 操作を整理し、SQL クエリのパフォーマンスを向上させ、ネットワーク上で送信されるデータ量を削減し、トランザクション制御やその他の機能を実装するために使用されます。この記事では主に、MySQL ストアド プロシージャのループ制御構造、つまり while 文とrepeat-until 文を紹介します。
while ループ ステートメントは基本的なループ構造であり、MySQL ストアド プロシージャでは while ステートメントを使用して、一部のループの繰り返し実行を実装できます。コードは終了条件が満たされるまで続きます。 while の構文は次のとおりです。
WHILE condition DO statements END WHILE;
このうち、condition はループを終了する条件、ステートメントは実行する必要があるコード ブロックです。条件が true の場合、コードのブロックは条件が false になるまで繰り返し実行されます。以下は、単純な while ループの例です。
DELIMITER $$ CREATE PROCEDURE test_while() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 10 DO SELECT CONCAT('Hello, World!', i); SET i = i + 1; END WHILE; END$$ DELIMITER ;
上の例では、ストアド プロシージャ test_while を定義し、値 1 の整変数 i を宣言します。次に、while ループを使用してクエリ ステートメントを実行し、結果を出力します。各ループが終了すると、i の値は i が 10 より大きくなるまで 1 ずつ増加し、ループは停止します。ストアド プロシージャ test_while を実行すると、結果は次のようになります。
+----------------------+ | CONCAT('Hello, World!', i) | +----------------------+ | Hello, World!1 | | Hello, World!2 | | Hello, World!3 | | Hello, World!4 | | Hello, World!5 | | Hello, World!6 | | Hello, World!7 | | Hello, World!8 | | Hello, World!9 | | Hello, World!10 | +----------------------+
ループが 10 回実行され、実行されるたびに値 i を持つ文字列が出力されることがわかります。
repeat-until ループ ステートメントは、よく使用されるもう 1 つのループ構造です。MySQL ストアド プロシージャでは、repeat-until ステートメントを使用して実装できます。 . 終了条件が満たされるまで、コードのブロックを繰り返し実行すること。 repeat-until の構文は次のとおりです。
REPEAT statements UNTIL condition END REPEAT;
このうち、ステートメントは実行する必要があるコード ブロックであり、条件はループを終了する条件です。条件が true の場合、ループは終了し、条件が false の場合、ステートメントが繰り返し実行されます。以下は、単純なrepeat-until ループの例です。
DELIMITER $$ CREATE PROCEDURE test_repeat() BEGIN DECLARE i INT DEFAULT 1; REPEAT SELECT CONCAT('Hello, World!', i); SET i = i + 1; UNTIL i > 10 END REPEAT; END$$ DELIMITER ;
上の例では、ストアド プロシージャ test_repeat を定義し、値 1 の整変数 i を宣言します。次に、repeat-until ループを使用してクエリ ステートメントを実行し、結果を出力します。各ループが終了すると、i の値は i が 10 より大きくなるまで 1 ずつ増加し、ループは停止します。ストアド プロシージャ test_repeat を実行すると、結果は次のようになります。
+----------------------+ | CONCAT('Hello, World!', i) | +----------------------+ | Hello, World!1 | | Hello, World!2 | | Hello, World!3 | | Hello, World!4 | | Hello, World!5 | | Hello, World!6 | | Hello, World!7 | | Hello, World!8 | | Hello, World!9 | | Hello, World!10 | +----------------------+
ループが 10 回実行され、実行されるたびに i 値を含む文字列が出力されることがわかります。
ループはプログラミングにおいて不可欠な基本構造であり、MySQL ストアド プロシージャの while ステートメントとrepeat-until ステートメントは、ループ制御を実現し、完全なデータ処理を実現するのに役立ちます。分析タスクをより効率的に行うことができます。実際には、コードの正確さとパフォーマンスを確保するために、ループ条件の設定と更新、ループ内のステートメントの実行順序と効率に注意を払う必要があります。
以上がmysqlストアドプロシージャループの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。