57

在 Cypher 查询中似乎不支持 LIKE。

是否有任何其他构造可以执行相同的任务?

例如:

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

4 回答 4

75

使用正则表达式: http: //neo4j.com/docs/developer-manual/current/#query-where-regex

start n = node(*) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
于 2012-12-12T09:15:24.830 回答
27

从 2.0 版开始,首选语法使用MATCH.

例如

MATCH (n) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
于 2014-10-09T13:49:10.103 回答
25

不需要正则表达式:

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

转到cypher refcard并向下滚动到 Predicates 部分。你会发现这个和其他有用的东西。

想要不区分大小写?转换为小写:

start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;
于 2017-03-15T17:31:39.953 回答
19

如果你想让它不区分大小写

MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n;
于 2014-10-09T22:45:02.363 回答