Android搜索数据库与空的Where子句

时间:2016-01-31 17:13:58

标签: android sqlite

我正在尝试在android中执行搜索功能,允许用户使用不同的过滤器进行搜索。我能够创建一个包含多个select子句的简单where语句。当用户不使用过滤器选项时,我的问题出现了,有没有办法继续select语句但是在where子句中使用空值?

例如,用户希望搜索所有汽车,并添加一个过滤器,查找2011年制造的特定绿色汽车。

"Select * from cars where colour = 'green' AND year = 2011"

用户在没有过滤器的情况下搜索所有汽车的示例

"Select * from cars where colour = '' AND year = "

我不想使用两个语句我只想使用它并且在where子句中有空格,过滤器中没有选择任何内容,这可能吗?

2 个答案:

答案 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;

     

}