sql >> Databasteknik >  >> RDS >> Mysql

MySQL spara resultat av EXECUTE i en variabel?

Om du vill göra detta med en förberedd sats måste du inkludera variabeltilldelningen i den ursprungliga satsdeklarationen.

Om du vill använda en lagrad rutin är det lättare. Du kan tilldela returvärdet för en lagrad funktion direkt till en variabel, och lagrade procedurer stödjer parametrar.

Exempel:

Förberedt uttalande:

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;

Lagrad 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 |
+---------+

Lagrad procedur:

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 |
+---------+



  1. Hur konverterar man html till pdf med php?

  2. Hur man hittar alla begränsningsöverträdelser i en SQL Server-databas

  3. CASE .. NÄR uttryck i Oracle SQL

  4. Hur man installerar SQLite och SQLite Browser i Ubuntu