【问题标题】:Android SQLite Query Where and WhereAndroid SQLite 查询 Where 和 Where
【发布时间】:2013-03-24 03:05:35
【问题描述】:

我需要从 dan == table_column_one 和 vrijeme == table_column_two 的数据库返回 ID 值。我不知道该怎么做。

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;
    }   );  

这是我尝试的方法,但当然,它是错误的。

【问题讨论】:

    标签: android sqlite cursor where


    【解决方案1】:

    在 SQLiteDatabase.query() 中,选择分为两部分。 where 子句(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);
    

    【讨论】:

    • 谢谢,你不觉得有点复杂吗?至少在您第一次尝试时。
    • @alex 如果您确实需要多个 where 子句怎么办?找不到关于它的任何信息(在同一张表上),例如: where type ='A' and value='Hello' and where type='B' and value='Goodbye' 上述查询的问题:类型列具有不同的值我需要检查不同的类型/值列组合。
    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    相关资源
    最近更新 更多