簡體   English   中英

在Cypher中使用match({property})和WHERE子句之間的區別

[英]Difference between using match({property}) and WHERE clause in Cypher

我注意到match(a:Vegetable{name:'Cellery'}) return amatch(a:Vegetable) where a.name='Cellery' return a給我相同的結果。

兩者之間是否有實際區別? 當您知道屬性值時,第一種形式似乎可以很好地工作,但是是否可以使用通配符或LIKE條件呢?

EXPLAINPROFILE選項顯示查詢的執行計划。

它們顯示兩個查詢完全相同的執行計划(在空數據庫上)。

在此處輸入圖片說明

在此處輸入圖片說明

因此,從性能角度來看,這兩種表示法應該完全相同。

當您知道屬性值時,第一種形式似乎可以很好地工作,但是是否可以使用通配符或LIKE條件呢?

沒錯, WHERE為您提供了更多的靈活性。 基本上, MATCH子句僅允許您檢查可以寫為WHERE a.prop1 = value1 AND a.prop2 = value2 AND ... 同時, WHERE還提供了更多功能: AND / OR / XORNOT邏輯運算符,用於檢查不等式; 使用STARTS WITHCONTAINSENDS WITH和正則表達式; 檢查像WHERE (a:SomeLabel)這樣的節點類型,甚至檢查匹配變量是否是WHERE NOT (a)-[:SOME_REL]->(:SomeLabel)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM