Изборът от функции е възможен в други двигатели. Например Oracle ви позволява да напишете функция, която връща таблица от потребителски дефиниран тип. Можете да дефинирате набори от резултати във функцията, да ги попълвате с помощта на заявки или дори с помощта на комбинация от селектиране и код. В крайна сметка резултатният набор може да бъде върнат от функцията и можете да продължите да правите заявки за това, като използвате:
select * from table(FunctionToBeCalls(parameters));
Единственият недостатък е, че този набор от резултати не е индексиран, така че може да е бавен, ако функцията се използва в рамките на сложна заявка.
В MySQL нищо подобно не е възможно. Няма начин да използвате набор от резултати от процедура директно в заявка за избор. Можете да върнете единични стойности от функция и можете да използвате OUT
или INOUT
параметри към процедурата за връщане на стойности от. Но цели набори от резултати не са възможни. Попълването на временна таблица в рамките на вашата процедура е най-близкото, което ще получите.