Cypher查询通过调用ag_catalog
中的cypher
函数构建,该函数将返回SETOF。
Cypher()
cypher()
会执行传入的Cypher查询语句。
语法
cypher(graph_name, query_string, parameters)
参数说明
参数名称 | 描述 |
graph_name | Cypher查询的目标图。 |
query_string | 需要执行的Cypher查询。 |
parameters | 用于预处理语句的可选参数映射。默认为NULL。 |
说明
即使Cypher查询没有返回结果,也需要定义记录结构。
参数映射只能与预处理语句一起使用,否则将抛出错误。
返回值
将返回一组记录。
示例
SELECT * FROM cypher('graph_name', $$
/* 在此处编写 Cypher 查询 */
$$) AS (result1 agtype, result2 agtype);
说明
如果需要在Cypher函数中使用$$
, 可写成以下格式
SELECT * FROM cypher('graph_name', $my_cypher$
/* 在此处编写包含 $$ 的 Cypher 查询 */
$my_cypher$) AS (result1 agtype, result2 agtype);
在表达式中的使用Cypher
Cypher不能用作表达式的一部分,应使用子查询代替。有关如何在表达式中使用Cypher查询的更多信息,请参见SQL在Cypher中的使用。
SELECT子句
不允许在SELECT子句中直接调用Cypher作为独立列,但是可以使用Cypher作为条件的一部分。
不允许如下操作:
SELECT
cypher('graph_name', $$
MATCH (v:Person)
RETURN v.name
$$);
返回结果如下:
ERROR: cypher(...) in expressions is not supported
LINE 3: cypher('graph_name', $$
^
HINT: Use subquery instead if possible.
该文章对您有帮助吗?