更新密码查询时的条件

时间:2013-06-16 19:56:34

标签: neo4j conditional-statements cypher

我无法找到在一个Cypher查询中执行条件更新的简单解决方案。

假设我有游戏节点且游戏有属性...
我希望能够执行以下操作:

 If game.state = X then set game.state = Y else set game.state= Z

是否可以在一个Cypher查询中实现?你的回答非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的方法来模拟if...else语句:

START a=node(*), b=node(*)
WHERE a.state = X AND NOT b.state = X
SET a.state = Y, b.state = Z;

首先,START表达式将加载所有节点。然后,WHERE表达式将选择state等于X的所有节点并将其设置为a,并选择state不相等的所有节点到X并将其设为b。最后,SET表达式将设置所有a个节点并将state设置为Y,并将获取所有b个节点并设置{{1}转到state