LIMIT
LIMIT
constrains the number of returned rows.
LIMIT
accepts any expression that evaluates to a positive integer and does not 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 can be statically calculated (i.e. calculated before the query is run).
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 ORDER BY n.name LIMIT 1
SET n.locked = true
RETURN n
Writes locked
property on one node and return that node:
n |
---|
|
Rows: 1 |
Was this page helpful?