在 Neo4j 中,SET
语句用于更新节点或关系的属性。它允许你修改节点或关系的属性值,可以单独使用,也可以与其他查询语句(如 MATCH
、CREATE
、MERGE
等)一起使用。以下是一些使用 SET
语句的常见例子,以及它们的解释:
1】更新单个节点的属性:
MATCH (p:Person {name: 'John'})
SET p.age = 30;
这个查询会找到一个具有 "Person" 标签且属性 "name" 为 "John" 的节点,然后将其 "age" 属性更新为 30。
2】更新多个属性:
MATCH (p:Person {name: 'Alice'})
SET p.age = 28, p.city = 'New York';
这个查询会找到一个具有 "Person" 标签且属性 "name" 为 "Alice" 的节点,然后将其 "age" 属性更新为 28,将 "city" 属性更新为 'New York'。
3】更新关系属性:
MATCH (a:Person)-[r:FRIEND]->(b:Person)
WHERE a.name = 'Alice' AND b.name = 'Bob'
SET r.status = 'Close';
这个查询会找到一个由具有 "FRIEND" 关系连接的名为 "Alice" 和 "Bob" 的节点组成的模式,然后将该关系的 "status" 属性更新为 'Close'。
4】在已有属性基础上进行更新:
MATCH (p:Person {name: 'John'})
SET p.age = p.age + 1;
这个查询会找到一个具有 "Person" 标签且属性 "name" 为 "John" 的节点,然后将其 "age" 属性的值增加 1。
5】使用表达式进行更新:
MATCH (p:Person)
WHERE p.age > 25
SET p.category = CASEWHEN p.age <= 30 THEN 'Young'WHEN p.age <= 50 THEN 'Middle-aged'ELSE 'Elderly'
END;
这个查询会找到年龄大于 25 的所有节点,并根据不同的年龄范围将 "category" 属性进行更新。
SET
语句是一个非常有用的工具,可以在数据库中更新节点和关系的属性,从而保持数据的最新状态。