我在NEO4J查询中使用这样的东西
return [1] in [3,25,6,2,4,1]
并返回true。
然而,当我执行类似
的事情时 return [1,2] in [3,25,6,2,4,1]
它返回false。
所以问题是如何指定在列表中使用IN运算符。我找不到任何关于此的规范,我不确定它是否在所有版本中都是一致的。
答案 0 :(得分:1)
如果这确实有效,我很确定这是一个错误(虽然我还在寻找github问题)。您应该使用ALL
来实现您正在寻找的行为。
RETURN ALL(x IN [1, 2] WHERE x IN [3, 25, 6, 2, 4, 1])
集合(neo4j
列表)不是集合,它们可以有重复的条目,因此应该期望IN
执行成员资格检查,而不是交集。设置操作目前已降级为apoc
或其他外部程序。
如果您的第一个操作数 是一个列表,它将检查该整个列表是否与第二个操作数中的任何单个项匹配。因此,例如,[1, 2] IN [[1, 2], [3, 4]]
将返回true
,但[1, 2] IN [1, 2, 3, 4]
将返回“false”。