如何在Android应用程序中执行SQLite查询?

我想在我的Android数据库上使用这个查询,但它不返回任何数据。 我错过了什么吗?

SQLiteDatabase db = mDbHelper.getReadableDatabase(); String select = "Select _id, title, title_raw from search Where(title_raw like " + "'%Smith%'" + ")"; Cursor cursor = db.query(TABLE_NAME, FROM, select, null, null, null, null); startManagingCursor(cursor); return cursor; 

这将返回您所需的光标

 Cursor cursor = db.query(TABLE_NAME, new String[] {"_id", "title", "title_raw"}, "title_raw like " + "'%Smith%'", null, null, null, null); 

或者,db.rawQuery(sql,selectionArgs)存在。

 Cursor c = db.rawQuery(select, null); 

如果你想匹配的模式是一个variables,这也将工作。

 dbh = new DbHelper(this); SQLiteDatabase db = dbh.getWritableDatabase(); Cursor c = db.query("TableName", new String[]{"ColumnName"} , "ColumnName LIKE ?" ,new String[]{_data+"%"}, null, null, null); while(c.moveToNext()) { // your calculation goes here } 

我来这里提醒如何设置查询,但现有的例子很难遵循。 这是一个更多解释的例子。

 SQLiteDatabase db = helper.getReadableDatabase(); String table = "table2"; String[] columns = {"column1", "column3"}; String selection = "column3 =?"; String[] selectionArgs = {"apple"}; String groupBy = null; String having = null; String orderBy = "column3 DESC"; String limit = "10"; Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit); 

参数

  • table :你想查询的表的名字
  • columns :您想要返回的列名称。 不要返回你不需要的数据。
  • selection :从列返回的行数据(这是WHERE子句)
  • selectionArgs :这个代替了? 在上面的selection String中。
  • groupByhaving :将具有一定条件的数据在一列中复制数据。 任何不需要的参数都可以设置为null。
  • orderBy :对数据进行sorting
  • limit :限制返回结果的数量

试试这个,这对我的代码名字是一个String:

 cursor = rdb.query(true, TABLE_PROFILE, new String[] { ID, REMOTEID, FIRSTNAME, LASTNAME, EMAIL, GENDER, AGE, DOB, ROLEID, NATIONALID, URL, IMAGEURL }, LASTNAME + " like ?", new String[]{ name+"%" }, null, null, null, null);