Я разрабатываю страницу поиска базы данных (используя jsp), на этой странице поиска пользователи будут иметь несколько условий/параметров поиска в виде раскрывающегося списка, те параметры могут быть оставлены невыбранными (ноль другими словами), если они оставлены невыбранными, следует получить полный столбец. Для этого я использую функцию ifnull(), и я использую MySQL.SQL Функция IfNull() не распознает нулевые строки
Проблема, с которой я столкнулся, заключается в том, что SQL не может распознать, что строка равна null, когда пустая строка передается в функции ifnull, она извлекает нулевые значения вместо получения полного столбца. Передача NULL непосредственно в запросе «ifnull (NULL, Location)», похоже, работает нормально.
Список:
<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)"