1

我想使用表单填写的某些字段在我的数据库中进行搜索,但如果某些字段留空,我不想包含它们,哪种查询可以帮助我实现这一目标?目前我正在使用如下查询:

 Select * from DATABASE where COLUMN='form_input';

但是由于我的表单将返回空,它会尝试选择具有空条目的行,但这次我想查看数据库中所有行的结果,即我想通过以下方式使过滤器无效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这里使用。我们可以采用表单输入并为每个不为空的输入连接查询。

如果我们发现连接的字符串是空白字符串,我们将选择整个表。

否则

我们将使用 where 子句查询进行选择。

希望,这可以帮助你。

于 2013-03-12T11:37:23.457 回答