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

如何在存储过程中将SELECT结果一次性存入多个变量?

一次性给多个变量赋值的简洁写法

你尝试的SET @VAR1, @VAR2, @VAR3 = (SELECT PAR1, PAR2, PART3 FROM TABLE1)这种写法在MySQL里是不合法的,不过确实有更简洁的优化方式——用SELECT ... INTO语句一次性完成多变量赋值,仅需执行一次查询,效率更高:

SELECT PAR1, PAR2, PAR3 INTO @VAR1, @VAR2, @VAR3 FROM TABLE1;

关键注意事项:

  • 必须保证这条SELECT语句仅返回一行数据,若返回多行,会抛出Subquery returns more than 1 row的错误;
  • 如果查询无匹配结果(返回空行),所有变量会被赋值为NULL;
  • 该写法适配MySQL的会话变量(@开头的用户变量)和存储过程内的局部变量(通过DECLARE声明的变量)。

相比你原先多次执行SET的写法,这种方式只需要访问一次表,既减少了性能损耗,代码结构也更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:15:17