我想使用表单填写的某些字段在我的数据库中进行搜索,但如果某些字段留空,我不想包含它们,哪种查询可以帮助我实现这一目标?目前我正在使用如下查询:
Select * from DATABASE where COLUMN='form_input';
但是由于我的表单将返回空,它会尝试选择具有空条目的行,但这次我想查看数据库中所有行的结果,即我想通过以下方式使过滤器无效COLUMN='form_input'
由于我们不知道您的服务器端脚本语言 - 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 子句查询进行选择。
希望,这可以帮助你。