簡體   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