Selecteren uit functies is mogelijk in andere engines. Met Oracle kunt u bijvoorbeeld een functie schrijven die een tabel van het door de gebruiker gedefinieerde type retourneert. U kunt resultatensets definiëren in de functie, ze vullen met behulp van query's of zelfs met een combinatie van selecties en code. Uiteindelijk kan de resultatenset worden geretourneerd door de functie, en u kunt daarop verder zoeken met:
select * from table(FunctionToBeCalls(parameters));
Het enige nadeel is dat deze resultatenset niet wordt geïndexeerd, dus het kan traag zijn als de functie binnen een complexe query wordt gebruikt.
In MySQL is zoiets niet mogelijk. Er is geen manier om een resultatenset van een procedure rechtstreeks in een selectiequery te gebruiken. U kunt enkele waarden van een functie retourneren en u kunt OUT
. gebruiken of INOUT
parameters naar uw procedure om waarden te retourneren. Maar volledige resultaatsets is niet mogelijk. Het vullen van een tijdelijke tabel binnen uw procedure komt het dichtst in de buurt.