sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャからのデータの選択

    他のエンジンでは機能からの選択が可能です。たとえば、Oracleでは、ユーザー定義型のテーブルを返す関数を作成できます。関数で結果セットを定義したり、クエリを使用したり、selectとコードの組み合わせを使用して結果セットを入力したりできます。最終的には、関数から結果セットを返すことができ、次のコマンドを使用してクエリを続行できます。

    select * from table(FunctionToBeCalls(parameters));
    

    唯一の欠点は、この結果セットにインデックスが付けられていないため、関数が複雑なクエリ内で使用されると遅くなる可能性があることです。

    MySQLでは、このようなことはできません。プロシージャの結果セットをselectクエリで直接使用する方法はありません。関数から単一の値を返すことができ、OUTを使用できます またはINOUT 値を返すためのプロシージャへのパラメータ。ただし、結果セット全体を使用することはできません。手順内で一時テーブルに入力するのが最も近い方法です。




    1. 大規模なデータセットを使用した1回限りのクエリでのMySQLパフォーマンスの向上

    2. Oracleのvarchar(max)に相当するものは何ですか?

    3. プロパティファイルを読み取ってMySQLデータベースに接続するにはどうすればよいですか?

    4. Railsが範囲付きのwhere句のハッシュ構文を使用してクエリに`OR1 =0`を追加しているのはなぜですか?