Я не эксперт по хранимым процедурам, но мне было интересно, могу ли я добавить динамическое условие where в курсор. Я оглянулся вокруг, прежде чем спрашивать, но, кажется, ничто не соответствует моим потребностям, или, может быть, я просто могу получить это.
У меня есть две хранимые процедуры, и одна вызывает другую. Первая хранимая процедура вызывает вторую и передает встроенную динамическую строку SQL («И имя НЕ НРАВИТСЯ, бла-бла …») с именем dynamic_sql_condition.
Это часть второй хранимой процедуры:
declare resources cursor for select name from people where firstname = firstname {dynamic_sql_condition goes here} group by lastname;
Вы можете попробовать использовать подготовленные операторы, например так:
PREPARE stmt1 FROM 'select name from people where firstname = firstname {dynamic_sql_condition goes here} group by lastname';
EXECUTE stmt1;
Вы можете адаптировать это для использования с вашим курсором. Больше информации: https://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
Других решений пока нет …