Android SQLite: Is This Possible To Put 2 Arguments In Selection Field For Query?

265 views Asked by At

I have a question using SQLite in Android.

I have made a class extends SQLiteOpenHelper and I'd like to query values in table columns using two Arguments.

This is a function named getDatabase_Monday() inside of the SQLiteOpenHelper class

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

For querying, I made a method as

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

Now I'd like to put 2 arguments in Selection Filed like this

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

However, If I made code like this I got an error as && cannot be applied. Is there any methods that works as querying by 2 selection arguments?

If you have any suggestions I would love to hear.

Thank you very much.

screen

2

There are 2 answers

1
forpas On

&& is Java's logical AND operator.
For SQL you must use the operator AND:

COLUMN_MON + "=" + 1 + " AND " + COLUMN_START_TIME + "=" + 9
2
Amjad Alwareh On

Try to pass your statement as String, not pass a java syntax you should pass SQL syntax which is AND not &&.
COLUMN_MON+" = "+1+" AND "+COLUMN_START_TIME+" = "+9