![](/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.