The method of assigning the query result of Mysql stored procedure to the variable

The method of assigning the query result of Mysql stored procedure to the variable
 
Assigning the query result to a variable is done using a cursor in most cases, but if you know that the query result has only one row (such as the number of statistics records, the sum of a field, etc.), you can actually use set or into to achieve assignment . Sample code:
 
01
drop table if exists test_tbl;
02
create table test_tbl (name varchar(20), status int(2));
03
insert into test_tbl values('abc', 1),('edf', 2),('xyz', 3);
04

05
drop procedure IF EXISTS pro_test_3;
06
delimiter //
07
create procedure pro_test_3()
08
begin
09
-- way 1
10
    DECLARE cnt INT DEFAULT 0;
11
    select count(*) into cnt from test_tbl;
12
    select cnt;
13

14
-- Method 2
15
    set @cnt = (select count(*) from test_tbl);
16
    select @cnt;
17

18
-- way 3
19
    select count(*) into @cnt1 from test_tbl;
20
    select @cnt1;
21

22
-- In the case of multiple columns, it seems that only the into method can be used
23
    select max(status), avg(status) into @max, @avg from test_tbl;
24
    select @max, @avg;
25
end
26
//
27
delimiter ;
28

29
call pro_test_3();

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326943844&siteId=291194637