如何在workbench中禁用mysql EXECUTE命令的结果输出

如何在workbench中禁用mysql EXECUTE命令的结果输出,mysql,cursor,prepared-statement,mysql-workbench,Mysql,Cursor,Prepared Statement,Mysql Workbench,我试图在mysql工作台中的游标中使用一个准备好的语句。光标作用于一个非常大的数据集,因此它被执行多次。每次显示执行步骤的新结果时。这最终导致mysql workbench崩溃,因为打开的结果窗口太多 在光标中,我执行如下操作: PREPARE stmt2 FROM @eveningQuery; EXECUTE stmt2; DEALLOCATE PREPARE stmt2; 通常我用的是 set aVar = (EXECUTE stmt2); 使查询静音但执行不会这样工作 有人知道如何

我试图在mysql工作台中的游标中使用一个准备好的语句。光标作用于一个非常大的数据集,因此它被执行多次。每次显示执行步骤的新结果时。这最终导致mysql workbench崩溃,因为打开的结果窗口太多

在光标中,我执行如下操作:

PREPARE stmt2 FROM @eveningQuery;
EXECUTE stmt2; 
DEALLOCATE PREPARE stmt2;
通常我用的是

set aVar = (EXECUTE stmt2); 
使查询静音但执行不会这样工作

有人知道如何在mysql中禁用EXECUTE命令的输出吗

注意:我了解如何检索变量中的数据,但我想防止的是,它会显示在结果概述中,如下所示

这将使mysql工作台在循环过多时崩溃

编辑,因为它被问及@eveningQuery的一个示例

设置@eveningQuery=CONCAT'select@resultNm:=exists从tb_SplitDay中选择idSplitBill,其中idSplitBill=',idSplitBillVar',and',@columnnamev',=1,softdelete=0'

idSplitBillVar=来自光标的id。 @columnNameEv=我正在可变地填充的列


我添加这些信息是因为有人问过,但在我看来,这并不重要,因为即使是最简单的查询,这个问题仍然存在。当您执行一个准备好的语句时,您将得到一个输出结果。我只想禁用此行为。

您使用的查询会创建新的结果集,GUI客户端会多次显示它-

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 @resultNm

只是吹毛求疵,但你指的是存储过程而不是游标吗?谢谢你的评论。这是一个在存储过程中定义的游标,但我不认为这会对问题有太大的改变。你能展示一下@eveningQuery quaery的例子吗?我添加了一个查询的例子,但是它并不重要,因为它只需要一个简单的选择按钮,它确实重要。查询可能会创建结果集,您可以尝试避免它。好吧,这似乎可以解决问题,我认为查询的语法特定于一个准备好的语句,但正如您所建议的,它不是。谢谢你的回答,这会让我的生活更轻松。我会尽快给你奖金。