如何在sqlite查询中编写where子句以获得确切的值?

时间:2013-07-01 15:51:56

标签: android sqlite

嗨,我有一个诗歌数据库,我想在诗歌中搜索这是我的代码现在的样子 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;

}

但在这种情况下,如果我搜索“诗”,例如它检索我有“诗人”的记录,它带有一个实际上没有“诗”的文本我想得到准确的记录我该怎么办?查询看起来像?

2 个答案:

答案 0 :(得分:2)

这就是LIKE运算符的作用。要获得完全匹配,请更改

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

KEY_TEXT+"='"+inputText+"'";

答案 1 :(得分:0)

如果您对使用框架而不是编码数据库访问代码感兴趣,请查看Active Android(http://www.activeandroid.com/)。它有一些非常好的查询访问API,你可以从这里的示例:https://github.com/pardom/ActiveAndroid/wiki/Querying-the-database