1
私は、クエリの3種類作りたい:例えば、多目的結果のための単一の方法を行うには?
SELECT * FROM table
SELECT * FROM table WHERE code IN (...)
SELECT * FROM table WHERE code IN (...) AND username = 'xxx'
SELECT * FROM table WHERE username = 'xxx'
私は文章がパラメータに応じ「場合」を使用してクエリを構築することができます知っているが、私はそれがうまくかないことを確認しないとパラメータに応じ
SELECT * FROM table WHERE code IN(?) AND username = ?
しかし、別の問題があります、(コード(IN)を?)を回避する方法、またはので、(とユーザー名):私は次のようにPreparedStatementを使用することができますか? MySQLを使用したPreparedStatementでユニークなクエリを構築することが可能あり
if (codes is not null) then
query = query + " WHERE code IN(codes)"
if (username is not null) then
query = query + " AND username = ? "
:私が知っている唯一の方法は次のように文字列連結を使用していますか?
LIKE:
SELECT * FROM table WHERE if (codes is not null) code IN (?) AND if (username is not null) username = 'xxx'
あなたの正確な問題は何ですか? Javaでクエリを動的に構築できませんか? –
はい、私は、それぞれの方法ごとにメソッドを作成しないために、パラメータに応じてdinamicallyしたいと思います。 –
ここに問題はないと思いますが、あなたは、あなたのJavaコードで '' then'を実行します。いいえ、既存のパラメータに基づいてWHERE文を追加/除外するSQLロジックはありません。 IFやCASEロジックを使ってこのようなことをすることができます。http://stackoverflow.com/questions/87821/sql-if-clause-within-where-clauseしかし、それはおそらくあなたが得るほど近くにあります。 – Squeegy