我正在使用两个或更多下拉列表来过滤JSP页面中显示的结果。现在我只使用AND
进行数据库查询。例如,我有2 ddl。然后在我的查询中,我有:
Select * from table
WHERE cityId = ? AND
categId = ?
现在我想在我的所有ddl中添加ALL
作为选项,这样当我在一个ddl中选择ALL
选项时,查询将类似于:
Select * from table
WHERE cityId IS NOT NULL AND
categId = ?
如何仅使用一个查询来实现此目的?
答案 0 :(得分:0)
尝试根据下拉选择为where where条件创建连接字符串。
e.g。 (只是逻辑)
whereString = '1';
if POST contain drop1
whereString += ' AND CONDITION';
if POST contain drop2
whereString += ' AND CONDITION';
现在在sql中使用whereString
答案 1 :(得分:0)
您必须根据即将到来的值准备查询。
String dropDown1 = request.getParameter("dropDown1");
String dropDown2 = request.getParameter("dropDown2");
StringBuilder builder = new StringBuilder("Select * from table where ");
if(dropDown1 !=null){
if(dropDown1.equalsIgnoreCase("ALL")){
builder.append("cityId IS NOT NULL");
}else{
builder.append("cityId="+dropDown1);
}
}
if(dropDown2 !=null){
if(dropDown2.equalsIgnoreCase("ALL")){
builder.append("and categId IS NOT NULL");
}else{
builder.append("and categId="+dropDown2);
}
}
String finalQuery = builder.toString();