【问题标题】:SQLite Query : Select Query with BETWEEN clauseSQLite 查询:使用 BETWEEN 子句选择查询
【发布时间】:2011-04-18 19:50:15
【问题描述】:

我想在 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;  
}  

【问题讨论】:

  • 您问过您的问题是否清楚。对我来说不是,我害怕。您已经说明了您想做什么,但没有说明为什么不能(出了什么问题?您得到了什么结果?您的实际问题是什么?)。另外,我不知道任何带有关键字“INBETWEEN”的 SQL 方言......你的意思是“BETWEEN”吗?

标签: android sqlite select


【解决方案1】:

首先,您的查询无效。 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 之一执行查询。您使用哪种取决于您的需求;我链接的那个可能适合你的。

【讨论】:

    【解决方案2】:

    您可以使用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);
    

    【讨论】:

    • 嗨,托尼,感谢您的帮助。但它给出了运行时错误。这个查询构建器对我来说是新的,所以请你解释一下。告诉我哪些字段应该用双引号括起来。哪个不应该在里面。
    • 你实例化了 SQliteDatabase 吗?
    • SQLiteQueryBuilder 用于使用您传入的 args 构建查询字符串。您可以使用 SQLiteQueryBuilder 的查询方法来获取查询结果。在调用查询之前,您可能需要为 SQLiteQueryBuilder 设置一些参数,例如使用 setTables 方法设置要查询的表,使用 appendWhere 方法附加条件等等。您可以通过阅读 apidocs 获得更多信息。顺便说一句,粘贴您的异常日志将为其他人提供有关您的问题的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多