Skip to main content
Documents
Share
LinkedIn
Facebook
Twitter
Copy
ClausesStatementsKeywordsExpressionsFunctions

MySQL LIMIT Clause

The `LIMIT` clause in MySQL is used to constrain the number of records returned by a query. It is commonly employed to fetch a subset of results, especially in pagination scenarios.

Usage

The `LIMIT` clause is typically used at the end of a `SELECT` statement to specify the maximum number of rows the query should return. It can also be combined with an `OFFSET` to skip a specified number of rows before starting to return rows.

sql
SELECT column1, column2, ...
FROM table_name
LIMIT [offset,] row_count;

In this syntax, `LIMIT row_count` specifies the number of rows to return, while `LIMIT offset, row_count` skips `offset` rows before beginning to return the `row_count` rows. Note that the `OFFSET` value is zero-based, meaning that `LIMIT 0, 5` returns the first five rows. An alternative syntax, `LIMIT row_count OFFSET offset`, may be more intuitive for some users.

Examples

1. Basic Limit

sql
SELECT * 
FROM products 
LIMIT 5;

This example retrieves the first 5 rows from the `products` table.

2. Limit with Offset

sql
SELECT name, price 
FROM products 
LIMIT 3, 5;

This query skips the first 3 rows and then retrieves the next 5 rows from the `products` table, useful for pagination.

3. Limit with Ordering

sql
SELECT id, title 
FROM articles 
ORDER BY publish_date DESC 
LIMIT 10;

Here, the query returns the 10 most recently published articles by ordering the `articles` table in descending order of `publish_date`.

Tips and Best Practices

  • Use with ORDER BY. To ensure predictable results, use `LIMIT` in conjunction with `ORDER BY`.
  • Optimize pagination. For large datasets, consider using indexed columns in your `ORDER BY` clause to improve performance.
  • Avoid large offsets. Large offsets can lead to poor performance; consider alternative pagination strategies, like keyset pagination, which uses indexed columns for efficient data retrieval.
  • Be cautious with large row counts. Fetching an excessive number of rows can lead to increased memory usage and slower performance.
  • Consider SQL dialects. Note that `LIMIT` is not part of the SQL standard and may behave differently in other SQL databases. Users in mixed environments should be aware of these differences.