2010-09-29 329 views
4

我想運行在Android應用程序這個查詢選擇查詢:SQLite的查詢:與BETWEEN子句

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

我的DB模式

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

你問你的問題是否清楚。我不害怕。你已經說明了你想要做什麼,但不是爲什麼你不能(出了什麼問題?你得到了什麼結果?你真正的問題是什麼?)。另外,我不知道任何帶有關鍵字「INBETWEEN」的SQL方言......你的意思是「BETWEEN」嗎? – 2010-09-29 14:04:12

+0

嗨,對不起,這個錯誤。 – sid 2010-09-29 15:21:46

回答

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

您好託尼感謝您的幫助。但它給運行時錯誤。這個查詢構建器對我來說是新的,那麼請你向我解釋一下。只要告訴我哪些字段應該用雙引號。並且應該不在。 – sid 2010-09-29 15:08:38

+0

你是否已經實例化了SQliteDatabase? – Tseng 2010-09-29 17:54:55

+0

是的,我已經實例化SQLiteDatabase。 – sid 2010-09-30 00:33:29

5

首先,您的查詢是無效的。 SQL中沒有INBETWEEN;使用BETWEEN

... test_expr BETWEEN lower_bound_expr AND upper_bound_expr 

此外,逗號不是二元運算符,在WHERE條款工程;使用AND代替:

... WHERE binary_expression_1 AND binary_expression_2 

SQLiteDatabasequery methods的一個執行查詢。你使用哪個取決於你的需求;我鏈接的那個可能對你很好。