2 markdowneide markdowneide 于 2013.04.03 17:37 提问

Android SQLiteDatabase 中使用 like 查询

在名字表中有3个名字:Allakhazam, Beatbox 和 Cunning

public Cursor fetchNamesByConstraint(String filter) {

    mDb.query(true, DATABASE_NAMES_TABLE, new String[] { KEY_ROWID,
            KEY_NAME }, KEY_NAME + " LIKE ?",
            new String[] { filter }, null, null, null,
            null);

    return mCursor;
}

我使用A作为filter调用函数,但是光标返回一个0计数,这时候本应该是返回1的。如何修改代码呢?

1个回答

LiDaming_and
LiDaming_and   2013.04.07 10:42

这个语句将会返回所有的记录,这些记录的 keyname 是指定的字符串。如果你使用 wild card,然后就可以获得预期结果:

mDb.query(true, DATABASE_NAMES_TABLE, new String[] { KEY_ROWID,
            KEY_NAME }, KEY_NAME + " LIKE ?",
            new String[] { filter+"%" }, null, null, null,
            null);

在filter 中会显示所有的记录

mDb.query(true, DATABASE_NAMES_TABLE, new String[] { KEY_ROWID,
            KEY_NAME }, KEY_NAME + " LIKE ?",
            new String[] {"%"+ filter+ "%" }, null, null, null,
            null);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!