# LOOP

## Syntax

```sql
[begin_label:] LOOP
    statement_list
END LOOP [end_label]
```

## Description

`LOOP` implements a simple loop construct, enabling repeated execution of the statement list, which consists of one or more statements, each terminated by a semicolon (i.e., `;`) statement delimiter. The statements within the loop are repeated until the loop is exited; usually this is accomplished with a [LEAVE](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/leave) statement.

A `LOOP` statement can be [labeled](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/labels). `end_label` cannot be given unless`begin_label` also is 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 delimiter usage in the client.

## See Also

* [LOOP in Oracle mode](https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/about/compatibility-and-differences/sql_modeoracle)
* [ITERATE](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/iterate)
* [LEAVE](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/leave)
* [FOR Loops](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/for)

<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" %}
