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 回答