在 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
語句是一個非常有用的工具,可以在數據庫中更新節點和關系的屬性,從而保持數據的最新狀態。