首页 > 解决方案 > MySQL:如何在存储过程中使用 select 设置局部变量?

问题描述

看起来这一定是一个愚蠢的问题:) 但我似乎无法在任何地方找到它。

我需要通过 select 语句在 sproc 中设置一些局部变量。

这适用于查询窗口:

select  @value1 := value1, @value2 := value2 from test_table limit 1; 
select  @value1, @value2;

但是当我尝试在存储过程中做类似的事情时,我得到: SQL Error (1064): You have an error in your SQL syntax...

BEGIN

    declare p_value1 varchar(50); 
    declare p_value2 varchar(50); 
    select  p_value1 := value1, p_value2 := value2 from test_table limit 1; 

END

任何帮助表示赞赏。

标签: mysqlstored-procedures

解决方案


使用SELECT...INTO 语法

BEGIN

    declare p_value1 varchar(50); 
    declare p_value2 varchar(50); 
    select value1, value2 into p_value1, p_value2 from test_table limit 1; 

END

推荐阅读