我试图在一个游标中的mysql工作台中使用一个准备好的语句。游标在一个非常大的数据集上工作,因此它被执行了很多次。每次为执行步骤显示新的结果时。这最终导致mysql工作台崩溃,因为打开的结果窗口太多。
在光标中,我执行如下操作:
PREPARE stmt2 FROM @eveningQuery;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;通常我用的东西是
set aVar = (EXECUTE stmt2); 要使查询保持沉默,但执行却不是这样。
有人知道如何在mysql中禁用EXECUTE命令的输出吗?
注意:我理解如何检索变量中的数据,但我要防止的是,数据显示在结果概述中,如下所示

这将使mysql-工作台崩溃时,循环太多。
编辑是因为它被问到了@eveningQuery的一个例子。
SET @eveningQuery = CONCAT('select @resultNm :=存在“(从tb_SplitDay选择idSplitBill =',idSplitBillVar,‘和',@columnNameEv,’=1和softdelete = 0)');
idSplitBillVar =来自游标的id。@columnNameEv =我正在填写的一栏。
我添加这个信息是因为它是被问到的,但是在我看来这并不重要,因为这个问题仍然存在于最简单的查询中。执行准备好的语句时,您将得到一个输出结果。我只想阻止这种行为。
发布于 2013-03-12 08:13:13
您使用的查询创建新的结果集,GUI客户端显示它(...many时间)-
SELECT @resultNm:=EXISTS(
SELECT idSplitBill FROM tb_SplitDay
WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0
)你可以重写这个查询,结果集不会被创建-
SELECT EXISTS(
SELECT idSplitBill FROM tb_SplitDay
WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0
)
INTO @resultNmhttps://stackoverflow.com/questions/15283456
复制相似问题