2013-03-24 4 views
1

我需要從數據庫中返回ID值,其中dan == table_column_one和where vrijeme == table_column_two。我不知道該怎麼做。Android SQLite查詢Where和Where

public static int returnID(String dan, int vrijeme){ 
     Cursor cursor; 
     int IDRQ; 
     cursor = db.query 
       (
         TABLE_NAME, 
         new String[] { TABLE_COLUMN_ID, TABLE_COLUMN_ONE, TABLE_COLUMN_TWO },      
         new String[] {TABLE_COLUMN_ONE + " like " + "'%" + dan + "%'", TABLE_COLUMN_TWO + " like " + "'%" + vrijeme + "%'"}, null, null, null, null 
       ); 
     cursor.moveToFirst();   
     IDRQ = cursor.getInt(0); 
     return IDRQ; 
    } ); 

這就是我的嘗試,但當然是錯的。

回答

9

在SQLiteDatabase.query()中,選擇分爲兩部分。 where子句(a String)和whereArgs(String的數組)。

要在where子句中添加多個條件,可以使用ANDOR,就像使用Java中的&&||一樣。

where子句中的問號綁定到whereArgs數組中的某個字符串。

cursor = db.query(TABLE_NAME, new String[] { TABLE_COLUMN_ID, TABLE_COLUMN_ONE, TABLE_COLUMN_TWO }, 
TABLE_COLUMN_ONE + " LIKE ? AND " + TABLE_COLUMN_TWO + " LIKE ?",       
new String[] {"%" + dan + "%", "%" + vrijeme + "%"}, 
null, null, null, null); 
+3

謝謝,有點複雜你不覺得嗎?至少當你第一次嘗試它時。 – user1880779 2013-03-24 04:08:26

+0

不,不是。 – 323go 2013-03-24 04:10:00

+0

@alex如果你真的需要多個where子句呢?無法找到任何關於它(在同一張桌子上),如: 其中type ='A'和值='你好',其中type ='B'和value ='Goodbye' 上述查詢的問題:類型列有不同的值,我需要檢查不同的類型/值列組合。 – AgentKnopf 2014-12-02 14:33:05