Как найти строку из нескольких столбцов в базе данных Sqlite и вернуть результаты в виде списка? - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь найти строку из моей базы данных, которая содержит в основном 3 столбца (вопросы, ответы и комментарии), чтобы пользователь мог искать слово, и любой экземпляр этого слова в любых столбцах должен появляться в поискерезультат.Я использовал этот код, но он возвращает только поиск из первого столбца.есть ли у вас какие-либо идеи, что не так с моим кодом:

public Cursor search(String searchString) {

    String[] columns = new String[]{ KEY_QUESTION,KEY_ANSWER, KEY_COMMENT};
    String where =  KEY_QUESTION + " LIKE ? OR "+ KEY_ANSWER  + " LIKE ? ";
    searchString = "%" + searchString + "%";
    String[] whereArgs = new String[]{searchString};

    Cursor cursor = null;
    try {if (database == null) {
        database = openHelper.getReadableDatabase();
    }

        cursor = database.query(TABLE_FLASH, columns, where, whereArgs, null, null, null);
    } catch (Exception e) {
        Log.d(TAG, "SEARCH EXCEPTION! " + e); // Just log the exception
    }
    return cursor;
}

1 Ответ

0 голосов
/ 20 мая 2018

Вы предоставляете только один аргумент, но в вашем запросе есть два, поэтому второй будет нулевым.Попробуйте это:

String[] whereArgs = new String[]{searchString, searchString};
...