0

我有一个在 Android 中使用 SQLite 的问题。

我做了一个类扩展 SQLiteOpenHelper,我想使用两个参数查询表列中的值。

这是getDatabase_Monday()在 SQLiteOpenHelper 类中命名的函数

public String getDatabase_Monday(){
    sqLiteDatabase = this.getReadableDatabase();
    String[] columns = new String[]{COLUMN_TITLE,COLUMN_SUBTITLE,
            COLUMN_MON,COLUMN_TUE, COLUMN_WED,COLUMN_THUS, COLUMN_FRI,COLUMN_SAT,COLUMN_SUN,
            COLUMN_START_TIME,COLUMN_END_TIME};
    @SuppressLint("Recycle")
    Cursor cursor = sqLiteDatabase.query(TABLE_TIMETABLE,columns,COLUMN_MON+"="+1,null,null,null,null);

    int iTitle = cursor.getColumnIndex(COLUMN_TITLE);
    int iSubtitle = cursor.getColumnIndex(COLUMN_SUBTITLE);
    int iStarttime = cursor.getColumnIndex(COLUMN_START_TIME);
    int iEndtime = cursor.getColumnIndex(COLUMN_END_TIME);

    String result = "";

    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()){
        result = result +
                "Title: " + cursor.getString(iTitle) + "\n" +
                "SubTitle: " + cursor.getString(iSubtitle) + "\n" +
                "Start Time: " + cursor.getString(iStarttime) + "\n" +
                "End Time: " + cursor.getString(iEndtime) + "\n\n";
    }
    sqLiteDatabase.close();
    return result;
}

为了查询,我做了一个方法

Cursor cursor = sqLiteDatabase.query(TABLE_TIMETABLE,columns,COLUMN_MON+"="+1,null,null,null,null);

现在我想像这样在选择归档中放置 2 个参数

Cursor cursor = sqLiteDatabase.query(TABLE_TIMETABLE,columns,COLUMN_MON+"="+1&&COLUMN_START_TIME+"="+9,null,null,null,null);

但是,如果我编写这样的代码,则会收到错误消息&& cannot be applied。是否有任何方法可以通过 2 个选择参数进行查询?

如果您有任何建议,我很想听听。

非常感谢。

屏幕

4

2 回答 2

0

尝试将您的语句传递为String,而不是传递 java 语法,您应该传递不是的SQL语法。AND&&
COLUMN_MON+" = "+1+" AND "+COLUMN_START_TIME+" = "+9

于 2020-03-30T19:59:20.093 回答
0

&&是 Java 的逻辑AND运算符。
对于 SQL,您必须使用运算符AND

COLUMN_MON + "=" + 1 + " AND " + COLUMN_START_TIME + "=" + 9
于 2020-03-30T19:57:24.160 回答