2013-03-12 62 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

相關問題