当我运行这个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'))'
答
如果您尝试此查询: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
大概是因为在第一个语句中,没有满足条件的'x',所以确实所有'x'都在'[]'中。 –