[英]MySQL command line: Don't display results of query in a stored procedure
我有一个使用带有SELECT语句的循环的过程,但是该语句实际上只是为了设置变量。 这意味着有很多我不需要看到的东西正在显示,并且这淹没了我的终端。
这是我的意思的示例,尽管实际上并不是我正在运行的(因为这是公司信息):
DROP PROCEDURE IF EXISTS test;
DELIMITER #
CREATE PROCEDURE test()
BEGIN
SET @key:=1;
testloop: REPEAT
SELECT
@dummyString := stringField
FROM
aTable;
SET @dummyStringAll :=CONCAT(@dummyStringAll,$dummyString);
SET @key := @key + 1;
UNTIL @key>10
END REPEAT testloop;
END #
DELIMITER ;
是否可以运行SELECT(无论是否在过程内)并且不显示SELECT查询的结果? 也许这不是世界上最重要的事情,但这会有所帮助。
如果未存储在变量中,则存储过程将返回查询结果集。
它怎么知道您将结果存储在变量中?
不是在查询中使用变量,而是在查询中使用SELECT value INTO <variable>
语法。 请参阅: 13.2.9.1 SELECT ... INTO语法
从常见问题解答:
1)MySQL 5.6存储例程可以返回结果集吗?
存储过程可以,但存储函数不能。 如果在存储过程中执行普通的SELECT,则结果集将直接返回给客户端。
因此,使用'SELECT ... INTO ...'语法将防止该过程从查询返回结果集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.