他のエンジンでは機能からの選択が可能です。たとえば、Oracleでは、ユーザー定義型のテーブルを返す関数を作成できます。関数で結果セットを定義したり、クエリを使用したり、selectとコードの組み合わせを使用して結果セットを入力したりできます。最終的には、関数から結果セットを返すことができ、次のコマンドを使用してクエリを続行できます。
select * from table(FunctionToBeCalls(parameters));
唯一の欠点は、この結果セットにインデックスが付けられていないため、関数が複雑なクエリ内で使用されると遅くなる可能性があることです。
MySQLでは、このようなことはできません。プロシージャの結果セットをselectクエリで直接使用する方法はありません。関数から単一の値を返すことができ、OUT
を使用できます またはINOUT
値を返すためのプロシージャへのパラメータ。ただし、結果セット全体を使用することはできません。手順内で一時テーブルに入力するのが最も近い方法です。