Loop REPETIR do MySQL

Resumo : neste tutorial, você aprenderá como usar a REPEATinstrução MySQL para executar uma ou mais instruções até que uma condição seja verdadeira.

Introdução à instrução MySQL REPEAT

A REPEATinstrução cria um loop que executa repetidamente um bloco de instruções até que uma condição seja verdadeira.

Aqui está a sintaxe básica da REPEATinstrução:

[begin_label:] REPEAT
    statement;
UNTIL condition
END REPEAT [end_label]
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O REPEATexecuta repetidamente as instruções dentro de seu bloco até que o especificado conditionse torne verdadeiro.

É importante observar que REPEATverifica a condição após a execução do bloco, ou seja, o bloco sempre é executado pelo menos uma vez.

A REPEATinstrução pode ter rótulos opcionais antes REPEATe depois da END REPEATpalavra-chave.

O fluxograma a seguir ilustra como a REPEATinstrução funciona:

Loop REPETIR do MySQL

Exemplo de instrução REPEAT do MySQL

Esta instrução cria um procedimento armazenado chamado RepeatDemoque usa a REPEATinstrução para concatenar números de 1 a 9:

DELIMITER $$

CREATE PROCEDURE RepeatDemo()
BEGIN
    DECLARE counter INT DEFAULT 1;
    DECLARE result VARCHAR(100) DEFAULT '';
    
    REPEAT
        SET result = CONCAT(result,counter,',');
        SET counter = counter + 1;
    UNTIL counter >= 10
    END REPEAT;
    
    -- display result
    SELECT result;
END$$

DELIMITER ;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste procedimento armazenado:

Primeiro, declare duas variáveis counter ​​e resultdefina seus valores iniciais como 1 e em branco.

A countervariável é usada para contar de 1 a 9 no loop. E a resultvariável é usada para armazenar a string concatenada após cada iteração do loop.

Segundo, acrescente countervalor à resultvariável usando a CONCAT()função até que counterseja maior ou igual a 10.

A instrução a seguir chama o RepeatDemo()procedimento armazenado:

CALL RepeatDemo();Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída:

+--------------------+
| result             |
+--------------------+
| 1,2,3,4,5,6,7,8,9, |
+--------------------+
1 row in set (0.02 sec)

Query OK, 0 rows affected (0.02 sec)
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a instrução MySQL REPEATpara executar uma ou mais instruções até que uma condição seja verdadeira.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *