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