LIKE clause in CYPHER Query

2019-03-08 13:15发布

问题:

It appears that LIKE is not supported in Cypher queries.

Is there any other construct that would perform the same task?

For instance:

start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;

回答1:

using regular expressions: http://neo4j.com/docs/developer-manual/current/#query-where-regex

start n = node(*) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;


回答2:

As of version 2.0, the preferred syntax uses MATCH.

e.g.

MATCH (n) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;


回答3:

If you want to make it case insensitive

MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n;


回答4:

No Regexps needed:

start n = node(*) where n.Name contains "substring" return n.Name, n;

Go to the cypher refcard and scroll down to the Predicates section. You will find this and other useful stuff.

Want case-insensitive? Convert to lower case:

start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;


标签: neo4j cypher