Cypher查询语句中,p=(:dwd_hive_blood_di_upper{id:'${id}'}) 和 (p:dwd_hive_blood_di_upper{id:'${id}'}) 写法的区别
时间: 2024-04-02 14:31:59 浏览: 11
在Cypher查询语句中,p=(:dwd_hive_blood_di_upper{id:'${id}'})和(p:dwd_hive_blood_di_upper{id:'${id}'})的写法有所不同:
- p=(:dwd_hive_blood_di_upper{id:'${id}'})是一个模式匹配,表示将匹配到的节点/关系赋值给变量p。这里的模式是一个简单的节点,它不需要有标签,但必须有一个id属性等于${id}的节点才能匹配成功。如果匹配成功,变量p将成为一个节点,节点的属性可以通过p.id、p.name等方式访问。
- (p:dwd_hive_blood_di_upper{id:'${id}'})是一个节点变量声明,表示声明一个节点变量p,并将其绑定到一个具有标签dwd_hive_blood_di_upper和id属性等于${id}的节点。这里的p是一个节点变量,它可以在查询中用于引用这个节点,例如p.name、p.age等。
因此,两种写法的主要区别在于是否需要将匹配到的节点赋值给一个变量,并且在使用变量时的方式略有不同。
相关问题
match p=(:dwd_hive_blood_di_upper{id:'${id}'})-[:table2table*1..${dowm}]->(result:dwd_hive_blood_di_upper) return nodes(p) as node
这是一个Cypher查询语句,用于在Neo4j图数据库中查询从一个指定节点(:dwd_hive_blood_di_upper{id:'${id}'})出发,沿着任意数量的table2table关系(1到${down}个)到达的所有节点,并将这些节点作为结果返回。其中${id}和${down}是查询参数,需要在查询时提供具体的值。返回的结果中,每个节点都被表示为一个单独的行,其中包含了节点的所有属性。
Cypher语句查询,去除属性id中 ‘abc’字符串
你好!如果需要在Cypher语句中去除属性id中的特定字符串,可以使用`replace()`函数,具体语句如下:
```
MATCH (n)
SET n.id = replace(n.id, 'abc', '')
```
其中,`n`代表节点,`id`代表节点的id属性,`replace(n.id, 'abc', '')`表示将id属性中的所有`abc`字符串替换为空字符串。在上述语句中,将所有节点的id属性中的`abc`字符串删除。
如果你只需要查询id属性中不包含`abc`字符串的节点,可以使用`WHERE NOT`子句,具体语句如下:
```
MATCH (n)
WHERE NOT n.id CONTAINS 'abc'
RETURN n
```
其中,`n`代表节点,`id`代表节点的id属性,`CONTAINS`表示包含,`NOT n.id CONTAINS 'abc'`表示不包含`abc`字符串的节点。在上述语句中,只返回id属性中不包含`abc`字符串的节点。
希望能够帮助到你。