0

アプリ内に検索機能があります。それはほぼ適切に機能します。私の問題は、最初からsearchWordに似た結果しか得られないことです。

例: searchWord が "ada" の場合、結果には "ada" で始まるすべてのレコードが含まれますが、"ada" を含むレコードは含まれません。

ちょっとした変更に違いないことはわかっていますが、これは私が行った最初のデータベース処理です。

では、で始まるものではなく、含むものを検索するには、これをどのように変更する必要がありますか?

コード:

public Cursor getMatchingFromContacts(String searchWord) throws SQLException {

    String queryString = "SELECT _id, full_name FROM "
            + SF_CONTACT_TABLE;

    if (searchWord != null) {
        searchWord = searchWord.trim() + "%";
        queryString += " WHERE " + FULL_NAME + " LIKE ?";
    }
    String params[] = { searchWord };

    if (searchWord == null) {
        params = null;
    }
    try {
        Cursor cursor = db.rawQuery(queryString,
                params);
        if (cursor != null) {
            cursor.moveToFirst();
            return cursor;
        }
    } catch (SQLException e) {
        Log.e("AutoCompleteDbAdapter", e.toString());
        throw e;
    }

    return null;
}
4

2 に答える 2

3

ここでブロックを変更するだけです:

if (searchWord != null) {
    searchWord = "%" + searchWord.trim() + "%";
    queryString += " WHERE " + FULL_NAME + " LIKE ?";
}
于 2013-02-06T11:44:18.923 に答える
2

これを試して..

if (searchWord != null) 
{
    searchWord = "%" + searchWord + "%";
    queryString += " WHERE " + FULL_NAME + " LIKE ?";
}
于 2013-02-06T11:56:31.020 に答える