# REPEAT LOOP

## Syntax

```sql
[begin_label:] REPEAT
    statement_list
UNTIL search_condition
END REPEAT [end_label]
```

The statement list within a `REPEAT` statement is repeated until the search\_condition 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 (i.e., `;`) statement delimiter.

A `REPEAT` statement can be [labeled](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/labels). end\_label cannot be given unless begin\_label is also present. If both are present, they must be the same.

See [Delimiters](https://mariadb.com/docs/server/clients-and-utilities/mariadb-client/mariadb-command-line-client#delimiters) in the [mariadb](https://mariadb.com/docs/server/clients-and-utilities/mariadb-client) client for more on client delimiter usage.

```sql
DELIMITER //

CREATE PROCEDURE dorepeat(p1 INT)
  BEGIN
    SET @x = 0;
    REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
  END
//

CALL dorepeat(1000)//

SELECT @x//
+------+
| @x   |
+------+
| 1001 |
+------+
```

<sub>*This page is licensed: GPLv2, originally from*</sub> [<sub>*fill\_help\_tables.sql*</sub>](https://github.com/MariaDB/server/blob/main/scripts/fill_help_tables.sql)

{% @marketo/form formId="4316" %}
