我正在開發一個數據庫搜索頁面(使用jsp),在這個搜索頁面中,用戶將有一個下拉列表形式的多個搜索條件/選項,那些選項可以保持未選中(換句話說,爲空),如果它們未被選中,則應該檢索完整的列。爲了實現這一點,我使用了ifnull()函數,並且我使用了MySQL。SQL IfNull()函數不識別空字符串
我面臨的問題是,SQL似乎無法識別字符串爲空,當空字符串在ifnull函數中傳遞時,它將檢索空值而不是檢索完整列。在查詢「ifnull(NULL,Location)」中直接傳遞NULL似乎工作得很好。
名單:
<select name="EX">
<option value="NULL">Any</option>
<option value="1">Option1</option>
<option value="2">Option2</option>
<option value="3">Option3</option>
</select>
如何值下一個頁面的處理方式:
String NameVar = new String();
if(request.getParameter("EX") == "NULL"){
NameVar = null;
}
else if(request.getParameter("EX") != "NULL"){
NameVar = request.getParameter("EX");
}
我的查詢:
selectItem = connection.prepareStatement("SELECT Location, ItemType "
+ "FROM DBTEST "
+ "WHERE Location = IFNULL(?,Location)"