非常に複雑な結合を作成し、1行のデータを返すストアドプロシージャがあります(LIMIT 1が使用されています)。私のアプリケーションでは、そのデータを使用して計算を行っています。このようにして、ビジネスロジックをストアドプロシージャから保護しようとします。 しかし、今私はいくつかの計算を行うために、別のストアド関数でそのデータを取得する必要があります。ストアド・ファンクションを作成する理由は、何千もの行を戻す別の問合せで呼び出されるためです。MySQL:ストアドプロシージャの結果をストアドファンクション内で取得する方法は?
可能ですか?私はストアドファンクションの複雑な結合ロジックを複製したくない... 私が見る唯一の解決策は、出力パラメータを使用することです。
----------------------------
PS。私はあなたに私の状況を説明することを決めました、多分あなたは私に別の決定を提供します。
商品の納期払い価格(梱包、配送、通関を含む最終価格)を計算する必要があります。この配達義務の支払い価格の計算は少し複雑で、私はストアドプロシージャと関数に複雑なロジックを保持したくありません。そこで私は、価格の計算に必要なすべてのデータを選択するストアドプロシージャを作成し、そのデータをアプリケーションで使用して価格を計算します。今のところすべてがうまくいく。
しかし、今私は納期払い価格で価格表を作成する必要があります。私たちは何千もの商品を持っています。だから、商品の平和のために私のストアドプロシージャを呼び出すと、何千ものラウンドトリップ(クエリ)がサーバーにかかるでしょう。そのため、ストアドプロシージャを呼び出し、返されたデータに基づいて価格を計算する関数を作成する必要があります。そして、私はこれを次のように使いたい:
SELECT説明、blablabla、Weight、...、GetDeliveryDutyPaidPrice(...)FROM pricelist;
アイデア?
私はそのストアドプロシージャの入力パラメータを持っています。ビューはどのように役立ちますか?もっと詳しく説明できますか? – nightcoder
そのストアドプロシージャの入力パラメータは何ですか?出力行を生成するための入力パラメータが必要な場合は、ストアドプロシージャからビジネスロジックを維持することに本当に成功しましたか? –
まあ、入力パラメータはjoinとwhere句にのみ必要です – nightcoder