2013-03-12 61 views
1

我想在我的数据库中使用填写的表格填写一些字段 ,但是如果某些字段留空,我不想包含它们 哪种查询可以提供帮助我在实现这个? 目前我使用的查询,如:在返回空输入的表格中搜索数据库

Select * from DATABASE where COLUMN='form_input'; 

但我的形式将返回空,它会尝试并选择具有空条目,而是我想这一次行看到数据库即我所有行的结果要通过无效COLUMN='form_input'

回答

1

过滤器由于我们不知道你的服务器端脚本语言 - 的psheuducode应该是 -

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

而且如果对于form_inp许多领域UT然后我们可以设计 我们的代码是这样 -

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子句进行选择查询。

希望这能帮助你。

+0

是的,这可以工作,但问题是形式将包含多个这样的列条目,并设计如果其他结构为每个案件将是非常复杂的。 前2个项目可能有4个案例,3个项目可能有8个案例。 有没有其他出路? – user1575044 2013-03-12 18:07:34

+0

我编辑了我的逻辑。请检查它是否有帮助。 – 2013-03-12 18:28:24

+0

谢谢你这一个将工作得很好 ,除非它需要一点修改,以防form_input1为null whrerequery将是空的,所以将不得不照顾并添加额外的嵌套if-else语句 谢谢! – user1575044 2013-03-13 06:06:01

相关问题