2016-07-17 4 views
0

2つの列値の配列をSQLクエリのwhere条件に送信するにはどうすればよいですか? 'in'条件の値は可変です。以下の例を参照してください。2つの列値の配列をクエリに渡す - SpringJDBC

select * 
from table_a ncjp 
where 
    (ncjp.col_a,ncjp.col_b) in ((2855824,5),(2855824,6)); 
+0

ネイティブサポートがないとは思いますが、動的な数の '? 'マーカーでSQLを構築し、' query() '呼び出しで位置引数(フラット配列)を使用する必要があります。 – Andreas

+0

@アンドレアスOk。ありがとう – Zeus

+0

私は現在、私の解決策として文字列連結アプローチを使用しています。 – Zeus

答えて

-2

あなたがこれを構築することができます最善の方法は、イムは、この

public object getElementAt(object [] []arr, int a, b){ 
return arr[a,b]; 
} 

のようなものをguesingして、あなたが

を行うことができますので、その2次元配列のインデックスに値を返す関数を作成することです
select * 
from table_a ncjp 
where 
    (ncjp.col_a,ncjp.col_b) in :x; 
query.setParameter("x", getElementAt(arr,1,2)); 
+0

これは結果が得られませんOPは後です。 – Andreas

+0

@アンドレアス、私が読んだことを通して、私は、これのいくつかの形式は、OPが要求したもの、またはそれのいくつかの変更だと思う! 彼は何かの後にいるかもしれないが、私は答えを読む方法でこれは私がそれを見る方法です! –

+0

2d配列のすべての値をクエリに送信したい場合は、配列の値に従ってクエリ文字列を作成するために何らかのループを実行する必要があります。 –

関連する問題