2013-03-24 140 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