1
當我運行這個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'))'
當我運行這個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'都在'[]'中。 –