1

期待どおりに機能しているストアドプロシージャに次のループがあります。指定された数のSQLクエリを生成します。私がする必要があるのは、1つ以上のレコードが返された場合にループを終了することです。

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 ;
4

2 に答える 2

1

使用できますFOUND_ROWS

IF FOUND_ROWS() > 0 THEN
  LEAVE days_loop;
END IF;
于 2012-04-30T07:29:59.653 に答える
0

ループから抜け出すために去ってみてください

于 2012-04-30T06:51:35.097 に答える