怎样对android开发中的sqlite数据库进行模糊查询,并返回一个Cursor

返回Cursor是为了放在SimpleCursorAdapter里方便
2024-11-08 12:44:53
推荐回答(3个)
回答(1):

Android中SQLite模糊查询,可以直接使用Cursor 的query加入模糊查询的条件即可。
使用query有如下方式:
1.使用这种query方法%号前不能加',以下为示例代码:
Cursor c_test = mDatabase.query(tab_name, new String[]{tab_field02}, tab_field02+" LIKE ? ",
new String[] { "%" + str[0] + "%" }, null, null, null);

2.使用这种query方法%号前必须加',以下为示例代码 :
Cursor c_test=mDatabase.query(tab_name, new String[]{tab_field02},tab_field02+" like '%" + str[0] + "%'", null, null, null, null);

3.使用这种方式必须在%号前加' ,以下为示例代码 :
String current_sql_sel = "SELECT * FROM "+tab_name +" where "+tab_field02+" like '%"+str[0]+"%'";
Cursor c_test = mDatabase.rawQuery(current_sql_sel, null);

回答(2):

SQLiteOpenHelper dbHelper=new MyDateBase(AndroidProject_SQLiteActivity.this,"myDataBase2");
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cur=db.query("user", new String[]{"id","name"}, "id like ?", new String[]{"%2%"}, null, null, null);
while(cur.moveToNext()){
String name=cur.getString(cur.getColumnIndex("name"));
System.out.println("查询出来的值是:"+name);
}

回答(3):

// select * from users where name like %searcherFilter% or telnumber like %telnumber%;
public List> queryByLike(String searcherFilter) {
Cursor cursor = db.query(TABLE_NAME, null, "name like '%" + searcherFilter + "%' or telnumber like '%" + searcherFilter + "%'", null, null, null, null);

------------------------------------------------------------------------------------------------------------------------
这个是不是你要的!!