Die Auswahl von Funktionen ist in anderen Engines möglich. Beispielsweise ermöglicht Ihnen Oracle, eine Funktion zu schreiben, die eine Tabelle eines benutzerdefinierten Typs zurückgibt. Sie können Ergebnismengen in der Funktion definieren, sie mithilfe von Abfragen füllen oder sogar eine Kombination aus Auswahl und Code verwenden. Schließlich kann die Ergebnismenge von der Funktion zurückgegeben werden, und Sie können mit der Abfrage fortfahren, indem Sie Folgendes verwenden:
select * from table(FunctionToBeCalls(parameters));
Der einzige Nachteil besteht darin, dass diese Ergebnismenge nicht indiziert ist, sodass sie langsam sein kann, wenn die Funktion innerhalb einer komplexen Abfrage verwendet wird.
In MySQL ist so etwas nicht möglich. Es gibt keine Möglichkeit, eine Ergebnismenge aus einer Prozedur direkt in einer Auswahlabfrage zu verwenden. Sie können einzelne Werte aus einer Funktion zurückgeben und Sie können OUT
verwenden oder INOUT
Parameter an Ihre Prozedur, um Werte zurückzugeben. Ganze Ergebnismengen sind jedoch nicht möglich. Das Füllen einer temporären Tabelle innerhalb Ihrer Prozedur ist das Beste, was Sie erreichen werden.