![](/img/trans.png)
[英]Cypher: Use WHERE clause or MATCH property definition for exact match?
[英]Difference between using match({property}) and WHERE clause in Cypher
我注意到match(a:Vegetable{name:'Cellery'}) return a
和match(a:Vegetable) where a.name='Cellery' return a
給我相同的結果。
兩者之間是否有實際區別? 當您知道屬性值時,第一種形式似乎可以很好地工作,但是是否可以使用通配符或LIKE條件呢?
EXPLAIN
和PROFILE
選項顯示查詢的執行計划。
它們顯示兩個查詢完全相同的執行計划(在空數據庫上)。
因此,從性能角度來看,這兩種表示法應該完全相同。
當您知道屬性值時,第一種形式似乎可以很好地工作,但是是否可以使用通配符或LIKE條件呢?
沒錯, WHERE
為您提供了更多的靈活性。 基本上, MATCH
子句僅允許您檢查可以寫為WHERE a.prop1 = value1 AND a.prop2 = value2 AND ...
。 同時, WHERE
還提供了更多功能: AND
/ OR
/ XOR
和NOT
邏輯運算符,用於檢查不等式; 使用STARTS WITH
, CONTAINS
, ENDS WITH
和正則表達式; 檢查像WHERE (a:SomeLabel)
這樣的節點類型,甚至檢查匹配變量是否是WHERE NOT (a)-[:SOME_REL]->(:SomeLabel)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.