2012-04-30 10 views
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 ; 
+0

は** **休憩を使用して** **文を続けることができます。 – Addicted

答えて

1

から抜け出すためにleaveを試してみてください:

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

あなたはFOUND_ROWSを使用することができますループ

+0

私は質問が準備されたステートメントによって返されたレコードの数を決定することであると思います。 – eggyal

+0

エジガールは正しいです。 0以上のレコードが返された場合は、ループを終了する必要があります。 – shantanuo

関連する問題