繁体   English   中英

MySQL命令行:不要在存储过程中显示查询结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM