MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
[begin_label:] REPEATstatement_listUNTILsearch_conditionEND REPEAT [end_label]
        The statement list within a
        REPEAT statement is repeated
        until the search_condition expression
        is true. Thus, a REPEAT always
        enters the loop at least once.
        statement_list consists of one or
        more statements, each terminated by a semicolon
        (;) statement delimiter.
      
        A REPEAT statement can be
        labeled. For the rules regarding label use, see
        Section 13.6.2, “Statement Labels”.
      
Example:
mysql>delimiter //mysql>CREATE PROCEDURE dorepeat(p1 INT)BEGINSET @x = 0;REPEATSET @x = @x + 1;UNTIL @x > p1 END REPEAT;END//Query OK, 0 rows affected (0.00 sec) mysql>CALL dorepeat(1000)//Query OK, 0 rows affected (0.00 sec) mysql>SELECT @x//+------+ | @x | +------+ | 1001 | +------+ 1 row in set (0.00 sec)