如何通过选择设置变量?

时间:2014-03-10 08:00:21

标签: mysql

在MSSQL中,我可以使用:

select @desc_out=desc01
,      @flag_out=flag 
from   A01 
where  id=@id_in

设置变量。

但在MySQL中,是否可以使用select设置变量?

这是MSSQL代码:

CREATE TABLE [dbo].[A01](
    [id] [varchar](4) NULL,
    [desc01] [varchar](20) NULL,
    [flag] [varchar](1) NULL
) ON [PRIMARY]

if (select OBJECT_ID('p_A01')) IS NOT NULL DROP proc p_A01;
CREATE proc p_A01 @id_in varchar(4),@desc_out varchar(20) output,@flag_out varchar(1) output
as
begin
  select @desc_out=desc01,@flag_out=flag  from A01 where id=@id_in
end;

declare @desc_out varchar(20);
declare @flag_out varchar(1);

EXEC p_A01 'A001',@desc_out output,@flag_out output;
select  @desc_out, @flag_out;

请使用MySQL建议我。

2 个答案:

答案 0 :(得分:0)

试试这样:

select @desc_out:=desc01,@flag_out:=flag  from A01 where id=@id_in

即在MYSQL中设置select变量时,您需要使用:=而不是=

如果您在declare中使用变量之前select变量,那么最好还是会更好。

答案 1 :(得分:0)

使用@name:=模式。例如:

SELECT @desc_out:=desc01 .....