布尔运算符
布尔运算符用于组合或评估逻辑条件。Cypher® 包含以下布尔运算符
-
合取:
AND
-
析取:
OR
-
异或:
XOR
-
否定:
NOT
a | b | a AND b |
a OR b |
a XOR b |
NOT a |
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
示例图
以下图用于下面的示例
要重新创建图,请在空的 Neo4j 数据库中运行以下查询
CREATE (alice:Person {name:'Alice', age: 65, role: 'Project manager', email: 'alice@company.com'}),
(cecil:Person {name: 'Cecil', age: 25, role: 'Software developer', email: 'cecil@private.se'}),
(cecilia:Person {name: 'Cecilia', age: 31, role: 'Software developer'}),
(charlie:Person {name: 'Charlie', age: 61, role: 'Security engineer'}),
(daniel:Person {name: 'Daniel', age: 39, role: 'Director', email: 'daniel@company.com'}),
(eskil:Person {name: 'Eskil', age: 39, role: 'CEO', email: 'eskil@company.com'})
示例
示例 1. 布尔运算符
AND
运算符MATCH (n:Person)
WHERE n.age > 30 AND n.role = 'Software developer'
RETURN n.name AS name, n.age AS age, n.role AS role
姓名 | 年龄 | 角色 |
---|---|---|
|
|
|
行数:1 |
OR
运算符MATCH (n:Person)
WHERE n.age < 30 OR n.role = 'Software developer'
RETURN n.name AS name, n.age AS age, n.role AS role
姓名 | 年龄 | 角色 |
---|---|---|
|
|
|
|
|
|
行数:2 |
XOR
运算符MATCH (n:Person)
WHERE n.age > 30 XOR n.role = 'Software developer'
RETURN n.name AS name, n.age AS age, n.role AS role
姓名 | 年龄 | 角色 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
行数:5 |
NOT
运算符MATCH (n:Person)
WHERE NOT n.age = 39
RETURN n.name AS name, n.age AS age
姓名 | 年龄 |
---|---|
|
|
|
|
|
|
|
|
行数:4 |
组合布尔运算符
MATCH (n:Person)
WHERE n.role = 'Software developer' XOR (n.age > 60 AND n.role = 'Security engineer') OR NOT (n.role = 'Director' OR n.name = 'Eskil')
RETURN n.name AS name, n.age AS age, n.role AS role
姓名 | 年龄 | 角色 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
行数:4 |