Android SQLite查询:选择带有中间子句的查询
我想在Android应用程序中运行此查询: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=是要检查的参数 我希望我的
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获得更多信息。顺便说一句,粘贴你的异常日志会给其他人更多关于你问题的信息。