Hvis du vil gøre dette med en udarbejdet erklæring, skal du medtage variabeltildelingen i den oprindelige erklæringserklæring.
Hvis du vil bruge en lagret rutine, er det nemmere. Du kan tildele returværdien af en lagret funktion direkte til en variabel, og lagrede procedurer understøtter parametre.
Eksempler:
Forberedt erklæring:
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;
Gemt funktion:
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 |
+---------+
Lagret 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 |
+---------+