【问题标题】:exit a loop if a record is returned如果返回记录则退出循环
【发布时间】:2012-05-09 21:49:44
【问题描述】:

我在按预期工作的存储过程中有以下循环。它生成给定数量的 sql 查询。如果返回一条或多条记录,我需要做的是退出循环。

set hour_inc = 1 ;
days_loop: loop
    if  hour_inc > p_hours then         
        leave days_loop ;
    end if ;    

        set @sqlstr = some sql query ;   

        PREPARE stmt FROM @sqlstr;
        EXECUTE stmt  ;
        DEALLOCATE PREPARE stmt;  

    set hour_inc = hour_inc + 1 ;
end loop days_loop ;

【问题讨论】:

  • 可以使用breakcontinue语句。

标签: mysql stored-procedures loops


【解决方案1】:

尝试leave 跳出循环

【讨论】:

  • 我想问题更多是关于确定准备好的语句返回的记录数。
  • eggyal 是正确的。如果返回的记录超过 0 条,我需要退出循环。
【解决方案2】:

你可以使用FOUND_ROWS:

IF FOUND_ROWS() > 0 THEN
  LEAVE days_loop;
END IF;

【讨论】:

    猜你喜欢
    • 2017-02-27
    • 2013-12-04
    • 1970-01-01
    • 2012-10-14
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2012-05-15
    相关资源
    最近更新 更多