2017-06-13 4 views
1

このcypher cql return all(x in [] where any(y in x where x='a'))を実行すると、結果 'true'が得られます。私はcql return 'a' in []を実行すると、結果が「偽」になりますが、なぜ最初のcqlが真になるのでしょうか?私はこのcypher cql 'を実行すると、どこでもx(どこでもx =' a '))'

+0

おそらく最初のステートメントでは、条件を満たす 'x 'は存在しないので、すべての' x'は '[]'にあると考えられます。 –

答えて

1

あなたはこのクエリをしようとした場合:それが原因nullあるリストにtrueどちらfalseでもないですので、RETURN any(x in null WHERE x='a') 結果がnullです。今

あなたはこのクエリをしようとした場合:リストが空であるため、あなたは(WHERE nullは何の意味もない場合であっても)好きなwhere句に置くことができるようRETURN all(x IN [] WHERE null) 結果は、trueです。

これらのクエリの連合、つまり。 return all(x in [] where any(y in x where x='a'))true

関連する問題