Android SQLite查询:选择带有中间子句的查询

Android SQLite查询:选择带有中间子句的查询,android,sqlite,select,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=是要检查的参数 我希望我的

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

首先,您的查询无效。SQL中没有中间的
;在之间使用

... test_expr BETWEEN lower_bound_expr AND upper_bound_expr
此外,逗号不是在
WHERE
子句中工作的二进制运算符;改用

... WHERE binary_expression_1 AND binary_expression_2
使用
SQLiteDatabase
中的一个命令执行查询。你使用什么取决于你的需要;我链接的那个可能适合你。

你可以用它来解决你的问题。下面是一个例子,希望能对你有所帮助

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);

你问你的问题是否清楚。恐怕对我来说不是。你已经说明了你想做什么,但没有说明为什么你不能(出了什么问题?你得到了什么结果?你的实际问题是什么?)。此外,我不知道有任何SQL方言带有关键字“中间”。。。你是说“中间人”吗?嗨,托尼,谢谢你的帮助。但它给出了运行时错误。这个querybuilder对我来说是新的,所以请你给我解释一下。请告诉我哪些字段应该用双引号括起来。您是否实例化了SQliteDatabase?SQLiteQueryBuilder用于使用传入的参数生成查询字符串。您可以使用SQLiteQueryBuilder的查询方法来获取查询结果。在调用查询之前,您可能需要为SQLiteQueryBuilder设置一些参数,例如使用setTables方法设置要查询的表,使用appendWhere方法附加条件,等等。您可以通过阅读apidocs获得更多信息。顺便说一句,粘贴你的异常日志会给其他人更多关于你问题的信息。