0
可変長の数値をストアドプロシージャに渡して、ストアドプロシージャの出力を制限しようとしています。 1つ、2つ、3つ、4つ、5つ、6つの部門があるとしましょう。だから彼らは1、3、6、あるいは2、4、3だけを選ぶかもしれません。ストアドプロシージャのWHERE句のIN文に変数のように渡すことはできますか?もしそうでなければ、他にどのようにこれを行うかもしれませんか?私はできるだけシンプルにしておきたい。ありがとう!SQLストアドプロシージャのINステートメントで変数を渡す
プレースホルダは、SINGLE値のみを表すことができます。 1つのプレースホルダに複数の値を渡すことはできません。 'WHERE foo IN(?)'と '1,2,3'を渡すと' WHERE foo = '1,2,3''と書かれたように実行されます。任意の数のプレースホルダーがある場合は、事前に準備されたステートメントを使用することはできません。値を持つのと同じ数のプレースホルダーでクエリ文字列を動的に構築し、1:1マッピングでそれらを渡す必要があります。 –
1つのオプションは、コンマで区切られた数字の文字列を一時テーブルに変換し、その後、その一時テーブルを結合するか、そうでなければクエリ内で使用することです。それを行う1つの方法:http://www.codeproject.com/Tips/584680/Using-comma-separated-value-parameter-strings-in-S –
あなたのDBMSは何ですか? – Serg