sql >> Database >  >> RDS >> Mysql

MySQL resultaten van EXECUTE opslaan in een variabele?

Als je dit wilt doen met een voorbereide verklaring, dan moet je de variabele toewijzing opnemen in de originele verklaring declaratie.

Als je een opgeslagen routine wilt gebruiken, is dat makkelijker. U kunt de retourwaarde van een opgeslagen functie rechtstreeks aan een variabele toewijzen, en opgeslagen procedures ondersteunen de parameters.

Voorbeelden:

Opgemaakte verklaring:

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;

Opgeslagen functie:

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

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



  1. mysql.h ontbreekt .... (Ruby on Rails, OSX)

  2. PGLogical 1.1-pakketten voor PostgreSQL 9.6beta1

  3. Upgrade van SQL Server-gegevensplatform in 2015

  4. Mysql-tabel bijwerken met gegevens uit een andere tabel