「の」SQLへの入力として与えられるは、私は文字列が、私は、カンマで区切られた文字列のリストを望んで句「IN」SQLへの入力として与えられたことにしたい句
答えて
あなたはorg.apache.commons.lang.StringUtils.join()メソッドを使用するか、または操作を自分で参加実装することができます。
回答ありがとうございました – prasanna
これは仕事を行います。ところで
public String separateByComma(List<String> input) {
// check for valid input!!
public StringBuilder sb = new StringBuilder(input.get(0));
for (int i = 1; i < input.size(); i++)
sb.append(",").append(input.get(i));
return sb.toString();
}
を - あなたは二重引用符で囲んだ文字列が必要になる場合があります
public String separateByCommaForSQL(List<String> input) {
// check for valid input!!
public StringBuilder sb = new StringBuilder("\""+input.get(0)+ "\"");
for (int i = 1; i < input.size(); i++)
sb.append(",\"").append(input.get(i)).append("\"");
return sb.toString();
}
あなたが必要な場合はので、あなたの文字列が自動的にエスケープされPreparedStatementを使用する必要がありますあなたはSQLインジェクションから保護されます。
まず、リスト内の各要素のマーカーを含むステートメントを生成します。例:
select id, name from users where name in (?, ?, ?)
次に、リストをループしてステートメントの値を設定します。
は、詳細については、この質問を見てみましょう:他の回答で指摘したように
What is the best approach using JDBC for parameterizing an IN clause?
を、あなたが参加を行うために使用することができ、多くのヘルパーがあります。
私は警告を追加したい:
は、ほとんどのDBMSは、あなたがこのように連結することができる値の数の上限を持っていることに注意してください。私たちはこれまでにこれまで走ってきました。数十を超える価値がないことが確実でない場合は、この制限を超えないようにする必要があります(これは、すべてのDBMSで異なります。場合によっては設定可能な場合もあります)。
通常、制限は、SQL文の合計サイズの制限、またはコンマ区切りのリスト内の値の数の明示的な制限のいずれかになります。
この問題が発生した場合は、値リストの一時(または永続)テーブルを作成し、このテーブルに値をINSERT
入力します。その後、リストをSQLステートメントに入れる代わりにWHERE xxx IN (SELECT column FROM helpertable)
を使用することができます。これにより、最大長問題を回避できます。リストを再利用する必要がある場合はおそらく速いでしょう。あなたは一度だけしかしリスト...
珍しいソリューションを必要とする場合それは、より面倒(そしておそらく遅い):文字列はArrayList
またはLinkedList
(java.util.AbstractCollection
のサブクラス)である場合は、返すtoString()
を「[呼び出しe1、e2、e3 ...] "となります。その後、文字列を処理することができます。
- 1. リストとカンマで区切られた文字列の間のLinqへの
- 2. カンマで区切られたSQL文字列テーブルに
- 3. 私は、文字列をカンマ区切り入力2にしたい
- 4. コンマで区切られた文字列とコンマで区切られた文字列を照合するSQLクエリ?
- 5. コンマで区切られた文字列への配列リスト
- 6. 私は私がこれを行うカンマで区切られた文字列データの配列にしたい時に差がところで通常2
- 7. PostgreSQLは与えられた文字列は、私たちにできる二つの文字列が与えられた文字列
- 8. 隣の区切り文字で区切られた文字列
- 9. SQL ServerのIN句の複数の文字列へのカンマ区切り文字の組み合わせ
- 10. カンマで区切らずにカンマで区切られた文字列 "#"を使用して "#"のみ
- 11. コンマで区切られた配列から文字列へ
- 12. パイプで区切られた文字列
- 13. Java - "]で区切られた文字列"
- 14. オートマッパーカンマで区切られた文字列
- 15. カンマで区切られたJquery検索文字列
- 16. 分割された入力文字列とカンマ区切りの出力
- 17. SQLのINT列にカンマ区切り文字列を入力
- 18. カンマで区切られた複数の文字列へのJavascript文字列配列
- 19. マルチデムPHPの文字列 - カンマで区切られた、コロン区切りのアレイ
- 20. 検索文字列は、私は区切られた文字列の2列のデータフレームを持って
- 21. 区切り文字で区切られたセル配列列
- 22. PHPで区切られた区切り文字で区切られた文字列
- 23. SQLクエリから区切られた文字列を文字列として保存します
- 24. Python3で文字列で区切られた整数変数の文字列を出力したい
- 25. 再フォーマット文字列カンマ区切りと私は文字列のリストを持っている
- 26. データが与えられた文字列
- 27. OCamlの - トラブル私は、文字列が与えられたときのリストを返す関数持たリスト
- 28. bash:区切り文字付きの区切り文字で区切られているが、括弧で囲まれた文字列ではない場合は
- 29. 秒文字列のリストとして与えられた期間の値で
- 30. SQL Server 2008カンマで区切られた文字列を1つの列からクエリする方法は?
例を挙げてください。 –
"IN"句の中でどの値を渡したいですか? – Kamal