MySQL save results of EXECUTE in a variable?

前端 未结 1 941
囚心锁ツ
囚心锁ツ 2020-12-13 09:52

How do I save the results of EXECUTE statement to a variable? Something like

SET a = (EXECUTE stmtl);
相关标签:
1条回答
  • 2020-12-13 10:26

    If you want to do this with a prepared statement, then you need to include the variable assignment in the original statement declaration.

    If you want to use a stored routine it's easier. You can assign the return value of a stored function directly to a variable, and stored procedures support out parameters.

    Examples:

    Prepared Statement:

    PREPARE square_stmt from 'select pow(?,2) into @outvar';
    set @invar = 1;
    execute square_stmt using @invar;
    select @outvar;
    +---------+
    | @outvar |
    +---------+
    |       1 |
    +---------+
    DEALLOCATE PREPARE square_stmt;
    

    Stored Function:

    delimiter $$
    create function square_func(p_input int) returns int
    begin
      return pow(p_input,2);
    end $$
    delimiter ;
    
    set @outvar = square_func(2);
    select @outvar;
    +---------+
    | @outvar |
    +---------+
    |       4 |
    +---------+
    

    Stored Procedure:

    delimiter $$
    create procedure square_proc(p_input int, p_output int)
    begin
      set p_output = pow(p_input,2);
    end $$
    delimiter ;
    
    set @outvar = square_func(3);
    call square_proc(2,@outvar);
    select @outvar;
    +---------+
    | @outvar |
    +---------+
    |       9 |
    +---------+
    
    0 讨论(0)
提交回复
热议问题