为什么select语句在mysql存储过程中的前一个select语句的结果集中显示结果

时间:2020-03-20 15:14:46

标签: mysql stored-procedures

我写了一个存储过程来显示质数,直到达到极限并计数“产生了多少个质数”。但是当调用该过程时,似乎第二条选择语句正在第一条选择语句结果集中返回其结果。它仅在过程内部发生。为什么?如何解决呢?请帮忙。

drop procedure if exists prime;

delimiter $$
CREATE procedure prime(in num int)
begin
   declare i int;
   declare j int;
   declare cout int default 0;
   drop table if exists temp;
   create table temp(prime_no int);
   set i=2;
   while i < num do
       set j=2;
       w1: while j <= sqrt(i) do
                   if mod(i ,j)=0 then 
                         leave w1;
                   end if;
                   set j=j+1;
       end while;
        if j>sqrt(i) then
          insert into temp values(i);
          set cout=cout+1;
        end if;
        set i=i+1;
    end while;

    set @prime_count=cout;
    select @prime_count as 'prime_count';
    select prime_no as 'prime_numbers' from temp;


end$$
delimiter ;
call prime(27);
and the output is 
+-------------+
| prime_count |
+-------------+
|           9 |
+-------------+
1 row in set (0.4541 sec)
+-------------+
| prime_count |
+-------------+
|           2 |
|           3 |
|           5 |
|           7 |
|          11 |
|          13 |
|          17 |
|          19 |
|          23 |
+-------------+
9 rows in set (0.4541 sec)
Query OK, 0 rows affected (0.4541 sec)

**看,有两个结果集,但两个结果集都具有相同的列标题...此处是d prblm吗?**

0 个答案:

没有答案
相关问题