使用LIKE进行Android SQLiteDatabase查询

我在NAMES表中有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.任何人都可以看到代码有什么问题?

Solutions Collecting From Web of "使用LIKE进行Android SQLiteDatabase查询"

此语句将返回其keyname等于string指定的字符串的所有记录,如果使用通配符,则可以获得所需的结果。 喜欢:

 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); 

将列出filter中包含单词的所有记录。

你能试试这个…..代码…….

 public static final String KEY_ROWID="row"; public static final String KEY_NAME="name"; public Cursor fetchNamesByConstraint(String filter) { Cursor cursor=mDb.query(true, DATABASE_NAMES_TABLE, null,"row LIKE '%"+filter+"%' or name LIKE '%"+filter+"%'",null, null, null, null); } 
  public java.util.Vector getsearch(String subcategory,String searchby) { SQLiteDatabase db=this.getReadableDatabase(); Cursor cursor = db.query( TABLE_PRODUCTS, new String[] { SUBCATEGORY, MAIN_CATEGORY, PRODUCT_ID, PRODUCT_NAME, BRAND, PACKAGE_SIZE, PRICE }, SUBCATEGORY + " LIKE '%" + subcategory + "%'", null, null, null, null, null); } 

你应该给filter添加通配符;)

 "A%"