当我运行这个cypher cql'return all(x in [] where any(y in x where x ='a'))'

问题描述:

当我运行这个cypher cql return all(x in [] where any(y in x where x='a'))时,它会得到'true'的结果。我运行cql return 'a' in [],它得到的结果'错误',但为什么第一个cql会变为真?当我运行这个cypher cql'return all(x in [] where any(y in x where x ='a'))'

+0

大概是因为在第一个语句中,没有满足条件的'x',所以确实所有'x'都在'[]'中。 –

如果您尝试此查询:RETURN any(x in null WHERE x='a') 结果是null,因为它既不true既不false由于是null列表。

现在,如果你尝试此查询:RETURN all(x IN [] WHERE null) 结果是true,因为列表是空的,所以你可以把你想要的(即使WHERE null并不意味着什么)任何在where子句。

所以这些查询的联合,即。 return all(x in [] where any(y in x where x='a'))true