LIMIT
LIMITconstrains the number of returned rows.
LIMIT accepts any expression that evaluates to a positive integer — however the expression cannot refer to nodes or relationships.
Return a limited subset of the rows
To return a limited subset of the rows, use this syntax:
MATCH (n)
RETURN n.name
ORDER BY n.name
LIMIT 3
Limit to 3 rows by the example query.
| n.name |
|---|
|
|
|
Rows: 3 |
Using an expression with LIMIT to return a subset of the rows
Limit accepts any expression that evaluates to a positive integer as long as it is not referring to any external variables:
MATCH (n)
RETURN n.name
ORDER BY n.name
LIMIT 1 + toInteger(3 * rand())
Limit 1 row plus randomly 0, 1, or 2. So randomly limit to 1, 2, or 3 rows.
| n.name |
|---|
|
|
|
Rows: 3 |
LIMIT will not stop side effects
The use of LIMIT in a query will not stop side effects, like CREATE, DELETE, or SET, from happening if the limit is in the same query part as the side effect.
This behaviour was undefined in Neo4j versions before 4.3.
CREATE (n)
RETURN n
LIMIT 0
This query returns nothing, but creates one node:
|
Rows: 0 |
MATCH (n {name: 'A'})
SET n.age = 60
RETURN n
LIMIT 0
This query returns nothing, but writes one property:
|
Rows: 0 |
If we want to limit the number of updates we can split the query using the WITH clause:
MATCH (n)
WITH n LIMIT 1
SET n.locked = true
RETURN n
Writes locked property on one node and return that node:
| n |
|---|
|
Rows: 1 |