Получение параметров из запроса:
String city = request.getParameter("city");
int price = Integer.parseInt(request.getParameter("price").toString());
int guests ... etc
date init_date... etc
date end_date...etc
initDate = parse init_date with simpledateformater...etc
endDate = parse init_date with simpledateformater...etc
Давайте подготовим следующее состояние:
String getResult = "SELECT id_housing, name, description_short, price,
photo FROM housing WHERE city = ? AND init_date <= ? AND end_date >= ? AND
price = ? AND guests >= ?";
PreparedStatement stmt = con.prepareStatement(getResult);
stmt.setString(1, city);
stmt.setDate(2, new java.sql.Date(initDate.getTime()));
stmt.setDate(3, new java.sql.Date(endDate.getTime()));
stmt.setInt(4, price);
stmt.setInt(5, guests);
ResultSet rs = stmt.executeQuery();
Вопрос в том, как я могу удалить город или цену или любое значение после предложения WHERE, если значение равно нулю.
Например, если мой пользователь не хочет писать какой-либо текст во входном тексте города, request.getParameter будет нулевым (или пустой строкой "", я не знаю). В таком случае я хочу убрать город =? условие из подготовленного оператора, поэтому запрос будет возвращать строки с любым значением города).
Я пытался с
WHERE city = IFNULL(? , *) AND ...
Но не работает.