A newer version of this documentation is available.

View Latest

LIMIT clause

  • reference
    +
    The LIMIT clause specifies the maximum number of documents to be returned in a resultset by a SELECT statement.

    Purpose

    When you don’t need the entire resultset, use the LIMIT clause to specify the maximum number of documents to be returned in a resultset by a SELECT query.

    The LIMIT and OFFSET clauses are evaluated after the ORDER BY clause.

    You can use the OFFSET and LIMIT clauses together to paginate the results — that is, to split the resultset into pages, each containing a specified number of documents, for display purposes.

    Starting from version 4.5, the LIMIT clause in INSERT, UPDATE, and DELETE statements is no longer a hint. It indicates that the actual number of mutations will be less than or equal to the specified LIMIT.

    Syntax

    limit-clause ::= 'LIMIT' expr
    Syntax diagram

    Arguments

    expr

    Integer or an expression that evaluates to an integer representing the number of resulting documents. A negative value is the same as LIMIT 0.

    Examples

    Example 1. Get only 2 documents of hotels with an empty room
    SELECT name, address, city, country, url
    FROM `travel-sample`.inventory.hotel
    WHERE vacancy = true
    LIMIT 2;
    Result
    [
      {
        "address": "Capstone Road, ME7 3JE",
        "city": "Medway",
        "country": "United Kingdom",
        "name": "Medway Youth Hostel",
        "url": "http://www.yha.org.uk"
      },
      {
        "address": "6 rue aux Juifs",
        "city": "Giverny",
        "country": "France",
        "name": "The Robins",
        "url": "http://givernyguesthouse.com/robin.htm"
      }
    ]
    Example 2. Paginate the results using OFFSET and LIMIT

    The following query uses named parameters and expressions to display the specified page of results, assuming that page numbering starts at zero.

    SELECT name, address, city, country, url
    FROM `travel-sample`.inventory.hotel
    WHERE vacancy = true
    OFFSET $page * $results
    LIMIT $results;

    Setting the page number to zero, with two results per page, the results are the same as Example 1.

    Result
    [
      {
        "address": "Capstone Road, ME7 3JE",
        "city": "Medway",
        "country": "United Kingdom",
        "name": "Medway Youth Hostel",
        "url": "http://www.yha.org.uk"
      },
      {
        "address": "6 rue aux Juifs",
        "city": "Giverny",
        "country": "France",
        "name": "The Robins",
        "url": "http://givernyguesthouse.com/robin.htm"
      }
    ]