在Neo4j的CQL(Cypher Query Language)中,WHERE子句用于过滤查询结果,限定匹配特定条件的节点或关系。以下是WHERE子句的基本用法:

在节点匹配中使用WHERE:
// 查询年龄为30的Person节点
MATCH (p:Person)
WHERE p.age = 30
RETURN p.name, p.age

在这个例子中,使用MATCH找到所有的Person节点,然后使用WHERE过滤出年龄为30的节点。

在关系匹配中使用WHERE:
// 查询具有FRIEND关系且年龄差在5岁以内的Person节点
MATCH (a:Person)-[r:FRIEND]-(b:Person)
WHERE abs(a.age - b.age) <= 5
RETURN a.name AS Person1, b.name AS Person2

在这个例子中,使用MATCH找到具有FRIEND关系的节点,然后使用WHERE过滤出年龄差在5岁以内的节点。

多个条件的组合使用:
// 查询年龄在25到35之间、且名字包含'J'的Person节点
MATCH (p:Person)
WHERE p.age >= 25 AND p.age <= 35 AND p.name CONTAINS 'J'
RETURN p.name, p.age

在这个例子中,使用WHERE子句结合多个条件,过滤出年龄在25到35之间且名字包含'J'的Person节点。

使用逻辑运算符:
// 查询年龄为30或40的Person节点
MATCH (p:Person)
WHERE p.age = 30 OR p.age = 40
RETURN p.name, p.age

在这个例子中,使用WHERE子句结合逻辑运算符OR,过滤出年龄为30或40的Person节点。

通过合理使用WHERE子句,你可以根据实际需求对节点和关系进行更精细的筛选。


转载请注明出处:http://www.zyzy.cn/article/detail/9288/Neo4j