You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MariaDB存储过程中查询赋值且不返回结果?

解决MariaDB存储过程动态SQL赋值时返回结果的问题

在MariaDB中,SELECT @变量 := 值的写法本质是执行查询并将结果赋值给变量,同时会把变量值作为结果集返回给调用者。要只完成赋值不返回结果,只需把动态SQL改成SELECT ... INTO的赋值语法即可:

修改后的代码如下:

SET @txtSQL := CONCAT("SELECT COUNT(*)",
                      " INTO @bintTicketsRemaining FROM `", txtTable, "` WHERE state IS NULL;");
PREPARE STMT FROM @txtSQL;          
EXECUTE STMT;
DEALLOCATE PREPARE STMT;        

原理说明

  • SELECT ... INTO是MariaDB专门用于将查询结果赋值给变量的语法,执行时不会生成需要返回给调用者的结果集,只会完成变量赋值操作。
  • 原写法中SELECT @bintTicketsRemaining := COUNT(*)会把赋值后的@bintTicketsRemaining值作为一行一列的结果集返回,而改用INTO后就不会有这个输出。

内容的提问来源于stack exchange,提问作者SPlatten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:55:56