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

时间:2016-09-02 21:31:04

标签: mysql command-line

我有一个使用带有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查询的结果?也许这不是世界上最重要的事情,但它会有所帮助。

1 个答案:

答案 0 :(得分:1)

如果存储过程未存储在变量中,则它将返回查询结果集。

如何知道您将结果存储在变量中?

不在查询中使用变量,而是在查询中使用SELECT value INTO <variable>语法。见:13.2.9.1 SELECT ... INTO Syntax

来自常见问题:

1)MySQL 5.6存储例程能否返回结果集?

存储过程可以,但存储的函数不能。如果在存储过程中执行普通SELECT,则结果集将直接返回给客户端。

所以,使用&#39; SELECT ... INTO ...&#39;语法将阻止该过程从查询返回结果集。