SQLite查询:使用BETWEEN子句选择查询

时间:2010-09-29 13:14:20

标签: android sqlite select

我想在Android应用程序中运行此查询:

SELECT field1 FROM table1  
where field1 = ?(enteredField1) AND field2 = ?(enteredField2)  
AND enteredField3 BETWEEN field3 , field4  
;

我的数据库架构

table1(field1, field2, field3, field4, field5)  

enteredField1,2,3 =是要检查的参数。

我希望我对自己的问题很清楚。

这是函数 -

public boolean checkData(String task1, String dte1, String startTime1 )  
{   

        // field 1 = task , fiels 2 = dte, field 3 = startHr, field 4 = endHr  
        // enteredField 1,2,3 = task1, dte1, startTime1   
        // here I want to insert the query  

    int a = cursor.getCount();  
    if(a>0)  
    {  
        return true;  
    }  
    return false;  
}  

2 个答案:

答案 0 :(得分:5)

首先,您的查询无效。 SQL中没有INBETWEEN;使用BETWEEN

... test_expr BETWEEN lower_bound_expr AND upper_bound_expr

此外,逗号不是在WHERE子句中起作用的二元运算符;改为使用AND

... WHERE binary_expression_1 AND binary_expression_2

使用SQLiteDatabase中的query methods之一执行查询。您使用哪种方法取决于您的需求;我联系到的那个对你来说可能没问题。

答案 1 :(得分:4)

您可以使用SQLiteQueryBuilder来解决问题。以下是您的示例,希望它可以提供帮助。

SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
SQLiteDatabase db = null; // get your database instance here.
qb.setTables("table1");
qb.appendWhere("field1 = ? AND field2 = ?");
qb.query(db, new String[] { "field1" }, "enteredField3 BETWEEN field3 AND field4",
        new String[] { "enteredField1", "enteredField2"}, null, null, null);