返回 PQL 的执行结果 OUTPUT 语句

在 PQL 过程开发时,有的场景需要返回计算结果。比如后端接口开发,基本每个接口都要返回数据给前端。PQL 中使用 OUTPUT 语句或 RETURN 语句显式输出计算结果。

可以把整个 PQL 计算过程理解为是一个函数,OUTPUT 语句负责把最终结果返回给调用方。

上例使用了嵌入式查询表达式,最后的输出数据格式如下:

OUTPUT 语句并不会中断 PQL 过程的执行,这点与 RETURN 语句的意义不同。OUTPUT 语句后面依然可以写其他语句。下例中的 PRINT 语句依然会被执行。

如果在一个 PQL 过程中使用了多个 OUTPUT 语句,最后的结果是一个数组,数组的每一项就是每次 OUTPUT 的结果。

PQL 的隐式输出

开头提到 OUTPUT 语句是“显式输出”计算结果,PQL 还有一种机制叫“隐式输出”。举个例子,在数据计算过程中,单纯的 SELECT 的语句没有任何意义。

但是在后端接口开发中则不然,SELECT 语句可以用来向前端返回数据。在关系型数据库中,任何 SQL 语句都有返回值,查询语句返回一个二维表格,非查询语句返回数据库受影响的行数。Redis 的每个命令也都有返回值。在开发接口时,经常一个接口只有一条 SQL 语句,这时 PQL 不要求在一条语句时仍使用 OUTPUT 语句,PQL 会把这一条语句的结果自动返回。上例默认将SELECT 的结果返回。

隐式输出的规则如下:

上例隐式结果列表有两个值,一个是 SELECT 语句的查询结果,另一个是 UPDATE 语句影响数据表的行数,最后 UPDATE 语句的结果会被返回。

上例中 DELETE 语句的结果被 OUTPUT 语句显示输出,最后会被返回,隐式列表中的两个结果将被忽略。总结一下就是 显式结果会被全部输出,隐式结果只有在没有显示结果时才输出最后一项

在 PQL 中除了 OUTPUT 语句还有另一条语句也用来输出和返回数据,比 OUTPUT 功能简单一些,请参阅ECHO语句


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!