1

フォームに入力されたいくつかのフィールドを使用してデータベースを検索したいのですが、いくつかのフィールドが空のままの場合、どの種類のクエリがこれを達成するのに役立つかを含めたくありませんか?現在、次のようなクエリを使用しています。

 Select * from DATABASE where COLUMN='form_input';

しかし、私のフォームは空を返すので、nullエントリを持つ行を選択しようとしますが、今回はデータベース内のすべての行の結果を確認したい、つまりフィルターを無効にしたいCOLUMN='form_input'

4

1 に答える 1

1

サーバー側のスクリプト言語がわからないため、psheuducodeは次のようになります。

if(request['form_input']!=null)
    Select * from DATABASE where COLUMN='form_input';
else
    Select * from DATABASE;

また、form_inputのフィールドが多数ある場合は、次のようなコードを設計できます。

String wherequery = "";

if(request['form_input1']!=null)
{
    wherequery = wherequery + " COLUMN='form_input1' ";
}
if(request['form_input2']!=null)
{
    wherequery = wherequery + " And "
    wherequery = wherequery + " COLUMN='form_input2' ";
}
if(request['form_input3']!=null)
{
    wherequery = wherequery + " And "
    wherequery = wherequery + " COLUMN='form_input3' ";
}
....
And so on
....


String selectQuery = "";
if(wherequery == "")
{
       selectQuery = "Select * from TABLE";
}
else
{
       selectQuery = "Select * from TABLE where" + wherequery ;
}

execute (selectQuery);

ここで使用していることに注意してくださいpseudo code。フォーム入力を受け取り、nullではない入力ごとにクエリを連結できます。

連結された文字列が空白の文字列であることがわかった場合は、テーブル全体を選択します。

さもないと

where句クエリで選択します。

うまくいけば、これはあなたを助ける。

于 2013-03-12T11:37:23.457 に答える