Cypher,重用信息,使用 EXISTS{} 作为 varname,然后使用 varname,失败

问题描述 投票:0回答:1

如果这不会导致循环,我的查询应该创建从 A 到 B 的连接。
这意味着如果已经存在从 B 到 A 的连接,我无法将 A 连接到 B。

我有以下疑问


1   MATCH (a:User) WHERE ID(a) = 0 
2   MATCH (b:User) WHERE ID(b) = 1
3   WITH a, b, NOT EXISTS{(b)-[*]->(a)} as A
4   WHERE A
5   MERGE (a)-[:has_connection]->(:Connection)-[:supports]->(b);
6   RETURN 
7   CASE A
8       WHEN TRUE THEN 'success'
9       ELSE 'error'
10   END 

1, 2 -> 我只找到 2 个节点并将它们命名为 a 和 b
3 -> 我想检查从b到a是否没有连接并将结果保存在变量A中
4,5 -> 如果 A 为真,我想创建从 a 到 b 的连接
6 - 10 -> 我按条件 A 返回调试字符串

我认为这个语法是正确的,但我收到以下错误

Neo.ClientError.Statement.SyntaxError: Variable `A` not defined (line 2, column 10 (offset: 18))
"    CASE A"
          ^

我一定误解了 cypher 中的范围

有人可以解释一下我做错了什么吗,

如果从 b 到 a 没有连接,我希望得到结果“成功”,如果有连接,我想得到结果“错误”

syntax conditional-statements scope cypher exists
1个回答
0
投票

尽管查询不是最优的 错误只是我在第 5 行输入的分号

删除后,我得到了预期的结果。

我希望该片段对某人有所帮助,有关优化想法,请回复

© www.soinside.com 2019 - 2024. All rights reserved.