如何在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; 

  • 如何打印由android的query()方法执行的查询
  • android中的sqlite关系表
  • Android:通过Content Provider访问SQLite数据库还是实现DAO?
  • Android线程和数据库锁定
  • Android:使用ContentResolver时的SQLite事务
  • 创build数据库的Android权限
  • SQLiteException:在编译时出现“”:语法错误(代码1)
  • 以SQLite和Azure SQL数据库为中心存储的在线/离线多客户端移动应用程序的最佳主要关键策略是什么?
  • 这将返回您所需的光标

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