Javaで実行しているこのクエリがあります。
select book from com where genre=?;
パラメータをgenre
動的に設定します。すべてのデータが選択されるようにパラメーターを設定する方法はありますか?
通常のトリックは、すべてを選択するための個別のパラメーターを設定することです。
SELECT book FROM com WHERE genre=? OR 1=?
2 番目のパラメータを に設定すると0
ジャンルによるフィルタリングが使用されますが、 に設定する1
とすべてが返されます。
名前付き JDBC パラメータの使用に切り替える場合は、1 つのパラメータで書き直して、null
「すべてを選択する」という意味で使用できます。
SELECT book FROM com WHERE genre=:genre_param OR :genre_param is null
同じスクリプトを使用して、「場所」を無視するパラメーターを渡すことができるようにしたいということですか? これを使用して文字列 "AllData" を 2 番目のパラメーターに渡し、すべての結果を含めて最初のパラメーターを無視します。
select book from com where (genre=? OR "AllData"=?);
CASE 式 (SQL SQERVER) を使用できます。
select book from com where genre=CASE
WHEN ? IS NOT NULL THEN ?
ELSE genre
END
別のクエリを作成します。
select book from com;
これにより、「com」のすべての行から「book」列が取得されます。
ワイルドカードを使用するだけです。元。SELECT book FROM com WHERE genre LIKE "%"+seachString+"%";