2011-01-18 20 views
1

SQLのIN句に送ることができるように文字列をフォーマットする必要があります。 のString =( 'A'、 'B')。sがJavaからsql.Howに渡されるshudこの文字列は、このjavaからSQL IN句に変数を渡す

+1

あなたはあなたが過去に似たような質問をたくさんしているときにそれをどうやって行うのか知っていなければなりません。 – FrVaBe

+0

可能な複製http://stackoverflow.com/questions/178479/alternatives-for-java-sql-preparedstatement-in-clause-issue –

答えて

-1

を行うことができるだけでSQL文を作成し、それに

String sql = "SELECT a FROM table WHERE a IN "+s; 
を文字列を追加

この文字列からSQL文を作成できます。 プリペアドステートメントを使用することも良い方法...

+0

"is"、 "not be"。 – BoltClock

+1

連結を使用してクエリを作成しないでください。それは危険だ。 http://en.wikipedia.org/wiki/SQL_injection –

+0

PreparedStatementsとIN句はよく一緒に再生されません。 –

2

私はセット内の各要素は別々のパラメータである必要があり、この何度も渡って、私の知る限りになってきた:

String sql = "select * from customer where city in (?, ?, ?)"; 
PrepareStatement p = ..; 
p.setString("Mumbai"); 
p.setString("Pune"); 
p.setString("Bangalore"); 
...