如何从 Sqlite 数据库中的多个列中搜索字符串并在 listview 中搜索 returns 结果?

How to search a String from multiple columns in an Sqlite database and returns the results in listview?

我正在尝试从我的数据库中搜索一个主要包含 3 列(问题、答案和评论)的字符串,以便用户可以搜索一个词,该词在任何列中的任何实例都应出现在搜索结果。 我使用了这段代码,但它 returns 仅从第一列进行搜索。你知道我的代码有什么问题吗:

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

您只提供了一个参数,但您的查询有两个参数,因此第二个参数将为空。 试试这个:

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