我正在尝试在android中执行搜索功能,允许用户使用不同的过滤器进行搜索。我能够创建一个包含多个select
子句的简单where
语句。当用户不使用过滤器选项时,我的问题出现了,有没有办法继续select语句但是在where
子句中使用空值?
例如,用户希望搜索所有汽车,并添加一个过滤器,查找2011年制造的特定绿色汽车。
"Select * from cars where colour = 'green' AND year = 2011"
用户在没有过滤器的情况下搜索所有汽车的示例
"Select * from cars where colour = '' AND year = "
我不想使用两个语句我只想使用它并且在where
子句中有空格,过滤器中没有选择任何内容,这可能吗?
答案 0 :(得分:1)
您可以使用简单的方法,例如:
public void searchMethod(boolean filtered, colourString, yearValue) {
String selectQuery = "";
if (filtered)
selectQuery = "Select * from cars where colour = " + colourString + " AND year = " + yearValue;
else
selectQuery = "Select * from cars";
Cursor c = mDb.rawQuery(selectQuery, null);
...
}
答案 1 :(得分:0)
String whereClause =" WHERE color =' green' AND year = 2011';
字符串查询=" SELECT * FROM cars&#34 ;;
if(isForFilter){// booelan检查结果是否基于过滤器
query = query + whereClause;
}