> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/loop.md).

# LOOP

## Syntax

```bnf
[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](/docs/server/reference/sql-statements/programmatic-compound-statements/leave.md) statement.

A `LOOP` statement can be [labeled](/docs/server/reference/sql-statements/programmatic-compound-statements/labels.md). `end_label` cannot be given unless`begin_label` also is present. If both are present, they must be the same.

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

## See Also

* [LOOP in Oracle mode](/docs/release-notes/community-server/about/compatibility-and-differences/sql_modeoracle.md)
* [ITERATE](/docs/server/reference/sql-statements/programmatic-compound-statements/iterate.md)
* [LEAVE](/docs/server/reference/sql-statements/programmatic-compound-statements/leave.md)
* [FOR Loops](/docs/server/reference/sql-statements/programmatic-compound-statements/for.md)

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