期待どおりに機能しているストアドプロシージャに次のループがあります。指定された数の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 ;