2013-07-15 77 views
1

我有一個HTML頁面包含多個選擇字段,根據選擇我顯示一些信息從一個SQL表謊言這一點。更改選擇標準根據多選擇

select * from myTable where x="1" or x="2" 

的問題是,因爲我有多個選擇,所以我不知道有多少的條件數,我應該爲我的SQL查詢。像有從多選場只是一個單一的選擇,如果我,那麼該查詢將是這樣的:

select * from myTable where x="1" 

,但如果我有三個選擇,那麼該查詢將是這樣的:

select * from myTable where x="!" or x="2" or x="3" 

那麼我該如何編寫一個可以處理單個或多個甚至全部選擇的Java動態變化查詢?

+1

可能重複http://stackoverflow.com/questions/15121869/sql-prepared-statement-how-to- select-via-multiple-possible-menu-selections) –

+0

對不起,您的WHERE條款中的'x'列是多次還是不同的列? –

+1

將選擇參數放入'List'中。要構建查詢,請使用迭代器檢查迭代時是否還有更多元素。如果有,請添加一個「OR」和你想要的字段。這會建立你的'PreparedStatement'。您可以使用相同的技術來設置您的'''佔位符以避免SQL注入。 –

回答

1

使用SQL IN避免您的情況。事情是這樣的:

// this is crude way to create your SQL IN part 
// Ideally you should be iterating over your selections and creating this string 
String selections = firstSelection + "," + secondSelection; 

select * from myTable where x IN(selections); 
[?SQL語句準備如何通過多個可能的菜單選項中選擇(的
+0

我希望有一個'String []',用'?'創建我的查詢,然後將'String'的每個數組設置爲'PreparedStatement'以避免SQL注入。 –

+0

@LuiggiMendoza這也是一個很好的解決方案。我只是想用SQL來幫助解決這種情況。 –

+0

LuiggiMendoza和@JunedAhsan非常感謝您回覆球員,但我仍然不確定如果我爲3個或更多的x選擇而不是2個選項,我該如何更改查詢?就像在多重選擇中我選擇4個值,那麼查詢將如何看起來像?謝謝 – tkyass