首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql存储过程-不取行

问Mysql存储过程-不取行
EN

Stack Overflow用户
提问于 2022-06-15 20:15:16
回答 1查看 44关注 0票数 0

我是Mysql存储过程的新手。在循环之后在存储过程中返回行。这是我的密码

代码语言:javascript
复制
BEGIN
    
    DECLARE date_SD date;
    DECLARE c_stack CURSOR FOR
      select SD from t4 where date(SD) >= "2022-05-01" and date(SD)<= "2022-05-30" group by SD;
    DROP TEMPORARY TABLE IF EXISTS final_result;
    CREATE TEMPORARY TABLE final_result LIKE templaedb.temp_table;
    
    OPEN c_stack;
    read_loop: LOOP
        FETCH c_stack INTO date_SD;
        INSERT INTO final_result VALUES ('first','140','2022-05-06','','1','2','3','4','5');
        INSERT INTO final_result VALUES ('last','500','2022-05-06','','11','12','13','14','15');
    END LOOP read_loop;
    CLOSE c_stack;
    select 'Print Test';
    select * from final_result;
END

最后,Select语句的存储过程无法工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 20:58:52

尝尝这个

代码语言:javascript
复制
    DECLARE date_SD date;
            DECLARE c_stack CURSOR FOR
              select SD from t4 where date(SD) >= "2022-05-01" and date(SD)<= "2022-05-30" group by SD;
         
         /* add this*/ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
            DROP TEMPORARY TABLE IF EXISTS final_result;
            CREATE TEMPORARY TABLE final_result LIKE templaedb.temp_table;
            OPEN c_stack;
            read_loop: LOOP
            FETCH c_stack INTO date_SD;
/* must include*/
            IF done = 1 THEN
             LEAVE read_loop;
            END IF;
/* must include*/
                INSERT INTO final_result VALUES ('first','140','2022-05-06','','1','2','3','4','5');
                INSERT INTO final_result VALUES ('last','500','2022-05-06','','11','12','13','14','15');
            END LOOP read_loop;
            CLOSE c_stack;
            select * from final_result;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72637345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档