我想使用表单填写的某些字段在我的数据库中进行搜索 但如果某些字段留空,我不想包含它们 哪种查询可以帮助我实现这个? 目前我正在使用如下查询:
Select * from DATABASE where COLUMN='form_input';
但是由于我的表单将返回空,它将尝试选择具有空条目的行,但我希望此时查看数据库中所有行的结果,即我想通过COLUMN='form_input'
使过滤器无效
答案 0 :(得分: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子句查询。
希望,这可以帮到你。