0
idsのSELECTを実行するストアドプロシージャがあります(プロシージャ内にあるのは、最初にどのIDを選択するかということです)。Mysql:プロシージャの結果から値のリストを作成します。
SELECT * FROM products WHERE productID IN <resultSet>
のようなプロシージャー・クエリでその結果セットを使用したいと思います。
しかし、私はどのように範囲/間隔/に手順の結果セットを取得するか分からない?その選択を実行する変数。私は何が欠けていますか?
編集は:この質問は本当にSQL server stored procedure return a tableの重複はありませんが、それだけで同じソリューションを持っている:ストアドプロシージャはないリターン何でもします。
手順をmysqlのではできません結果セットを直接返します(mysqlの内部でさらに使用されますが、クライアントに返すこともできます)。その値を(一時的な)テーブルに挿入し、 'SELECT * FROM products where productID IN(thattableからのselect id)'を使うか、手続き/ idselectionのロジックを直接そのクエリに適用することができます。 'SELECT * FROM products where productID IN(maintableからIDを選択します。is_a_very_nice_product = 1)' – Solarflare
これはできません。そのためのビューが必要です。 – Shadow
@Solarflare:残念ながら、プロシージャは 'IF xyz THEN query1; ELSE query2; END IF'を返します。これがストアドプロシージャの理由です。 – Bowi