Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/executions/parameters/ Documentation version: v5.3.2 # 配置参数 每个参数均由一个名称和一个值组成。GQL 支持配置会话参数和查询参数。 - 会话参数作用于会话,可在当前会话中的所有语句中使用。有关设置会话参数的更多信息,请参见 [SESSION SET](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/sessions/set/#_5)。 - 查询参数作用于查询,仅在当前查询中使用。有关设置查询参数的更多信息,请参见[设置查询参数](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/executions/parameters/#_2)。 如果查询参数和会话参数同名,则优先使用查询参数。 ## 设置查询参数 可使用关键字`PARAMETERS`在语句中设置查询参数。名称必须以美元符号(`$`)为前缀,值必须是以下数据类型之一的字面量:数值、字符串、布尔、时间、列表和记录。参数值的数据类型根据其值自动推断,因此无需显式指定。更多信息,请参见[字面量](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/literals/)。 支持设置单个或多个参数: ```` ''' -- 设置单个参数 PARAMETERS $i=20 USE movie MATCH (n:Person WHERE n.id = $i) RETURN n.id ''' ''' -- 设置多个参数 PARAMETERS $x=1, $y=2 USE movie MATCH (n:Person WHERE n.id = $x OR n.id = $y) RETURN n.id ''' ```` 也可省略`PARAMETERS`关键字,直接使用`$参数名=值`的简写形式: ```` $i=20 USE movie MATCH (n:Person WHERE n.id = $i) RETURN n.id ```` 参数值支持列表等复合数据类型: ```` PARAMETERS $ids = [1, 2, 3] USE movie MATCH (n:Person WHERE n.id IN $ids) RETURN n.id ```` 此外,查询参数可以与[查询提示(Query Hint)](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/executions/hints/)结合使用,在单次查询中同时调整优化器行为和传入参数: ```` ''' /*+ SET_VAR(query_concurrency = 1) */ PARAMETERS $i=1 USE movie MATCH (n:Person WHERE n.id = $i) RETURN n.name ''' ```` ## 使用会话参数 会话参数设置后,可在当前会话的任意语句中直接使用。支持同时设置多个参数,参数值也支持列表、记录等复合类型: ```` ''' -- 设置单个会话参数 SESSION SET VALUE $param = 100 ''' ''' -- 同时设置多个会话参数 SESSION SET VALUE $i_1 = 10, $i_2 = 20 ''' ''' -- 设置列表类型参数 SESSION SET VALUE $ids = [1, 2, 3] ''' ''' -- 设置记录类型参数 SESSION SET VALUE $config = RECORD {a: 1, b: true, c: "test"} ''' ```` 设置后在查询中引用: ```` ''' USE movie MATCH (n@Actor WHERE n.id = $param) RETURN n.name AS name ''' ```` 返回: ```` +----------------+ | name | +----------------+ | Scott Speedman | +----------------+ ```` ## 查看和删除参数 - 查看当前会话中的所有参数,请参见 [SHOW PARAMETERS](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-admin/show/show-parameters/)。 - 查看指定参数的值,可使用`SHOW PARAMETER $参数名`。 - 删除指定会话参数,可使用 [SESSION RESET](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/sessions/reset/) `$参数名`。 - 删除所有会话参数,可使用`SESSION RESET ALL PARAMETERS`。