Кажется, как будто вы на самом деле не пробовал это.
Безграничный оператор SELECT
(т. Е. Не в подзапросе, производной таблице или SELECT ... INTO
) немедленно возвращает результат клиенту.
MySQL поддерживает очень полезное расширение, которое позволяет использовать регулярные операторы SELECT (то есть без использования курсоров или локальных переменных) внутри хранимой процедуры. Результирующий набор такого запроса просто отправляется непосредственно клиенту.
— http://dev.mysql.com/doc/refman/5.6/en/stored-routines-syntax.html
Результаты посылают клиенту, как только они будут доступны, а не после того, как процедура завершается. Это легко продемонстрировать, вызвав процедуру с клиентом командной строки MySQL.
Проблема у вас будет, однако, является то, что ваше приложение поток необходимо в конечном итоге ждать процедуры прекратить, потому что если он разъединяет слишком рано, процедура может прервать или приложение может попытаться повторно использовать подключение к базе данных другой запрос перед выполнением процедуры, что приводит к результатам, которые в лучшем случае были бы непредсказуемыми.
Если ваше приложение может надежно удерживать его в конце выполнения процедуры, это сделает то, что вы хотите; в противном случае вам понадобится другое решение.
Нет, и остальная часть этого ответа заключается только в том, чтобы выполнить минимальное требование 15 символов. – BlackTigerX