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