如何在工作台中禁用mysql EXECUTE命令的结果输出

Jer*_*upé 6 mysql cursor prepared-statement mysql-workbench

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

在游标中我做这样的事情:

PREPARE stmt2 FROM @eveningQuery;
EXECUTE stmt2; 
DEALLOCATE PREPARE stmt2;
Run Code Online (Sandbox Code Playgroud)

通常我会使用像

set aVar = (EXECUTE stmt2); 
Run Code Online (Sandbox Code Playgroud)

沉默查询但EXECUTE不能那样工作.

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

注意:我理解如何在变量中检索数据,但是我想要防止的是它在结果概述中显示如下 在此输入图像描述

当循环太多时,这将使mysql-workbench崩溃.

编辑因为它被问到了一个@eveningQuery的例子.

SET @eveningQuery = CONCAT('select @resultNm:= exists(从tb_SplitDay中选择idSplitBill,其中idSplitBill =',idSplitBillVar,'和',@ columnNameEv,'= 1和softdelete = 0)');

idSplitBillVar =来自光标的id.@columnNameEv =我正在填写的一个列.

我添加了这个信息,因为它被问到,但是在我看来这并不重要,因为即使是最简单的查询问题仍然存在.执行预准备语句时,您将获得输出结果.我只想禁用此行为.

Dev*_*art 6

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

SELECT @resultNm:=EXISTS(
  SELECT idSplitBill FROM tb_SplitDay
  WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0
)
Run Code Online (Sandbox Code Playgroud)

您可以重写此查询,并且不会创建结果集 -

SELECT EXISTS(
  SELECT idSplitBill FROM tb_SplitDay
  WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0
)
INTO @resultNm
Run Code Online (Sandbox Code Playgroud)