0

Javaで実行しているこのクエリがあります。

select book from com where genre=?;

パラメータをgenre動的に設定します。すべてのデータが選択されるようにパラメーターを設定する方法はありますか?

4

5 に答える 5

7

通常のトリックは、すべてを選択するための個別のパラメーターを設定することです。

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
于 2012-06-06T17:50:12.140 に答える
1

同じスクリプトを使用して、「場所」を無視するパラメーターを渡すことができるようにしたいということですか? これを使用して文字列 "AllData" を 2 番目のパラメーターに渡し、すべての結果を含めて最初のパラメーターを無視します。

select book from com where (genre=? OR "AllData"=?);
于 2012-06-06T17:55:09.193 に答える
0

CASE 式 (SQL SQERVER) を使用できます。

select book from com where genre=CASE
          WHEN ? IS NOT NULL THEN ?
          ELSE genre
          END
于 2012-06-06T17:55:09.693 に答える
0

別のクエリを作成します。

select book from com;

これにより、「com」のすべての行から「book」列が取得されます。

于 2012-06-06T17:50:07.137 に答える
0

ワイルドカードを使用するだけです。元。SELECT book FROM com WHERE genre LIKE "%"+seachString+"%";

于 2012-06-06T17:50:47.247 に答える