1

こんにちは、私は詩のデータベースを持っていて、詩を検索したいのですが、私のコードは次のようになっています public ArrayList searchthequeryforme(String inputText) { // TODO 自動生成されたメソッド スタブ

    String[] columns = new String[] { KEY_ROWID, KEY_TEXT, KEY_TITLE };
    Cursor c = mydatabase.query(true,TABLE_POEM, columns, KEY_TEXT+" like '%"+inputText+"%'", null, null,
            null, null, null);
    ArrayList<poem> myarray = new ArrayList<poem>();

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
        poem = new poem(c.getInt(0), c.getString(1), c.getString(2));
        myarray.add(poem);

    }
    return myarray;

}

しかし、この場合、たとえば「詩」を検索すると、「詩人」を含むレコードが取得され、実際には「詩」を含まないテキストが付属しています。正確なレコードを取得したいのですが、クエリはどのようになりますか?

4

2 に答える 2

2

それがLIKEオペレーターの仕事です。完全一致を取得するには、変更します

KEY_TEXT+" like '%"+inputText+"%'"

KEY_TEXT+"='"+inputText+"'";
于 2013-07-01T15:54:33.107 に答える
0

データベース アクセス コードをコーディングする代わりにフレームワークを使用することに関心がある場合は、Active Android ( http://www.activeandroid.com/ ) を参照してください。ここの例からわかるように、いくつかの非常に優れたクエリ アクセス API があります: https://github.com/pardom/ActiveAndroid/wiki/Querying-the-database

于 2013-07-01T15:55:39.073 に答える