¿Cómo realizar una consulta SQLite dentro de una aplicación de Android?

Estoy tratando de usar esta consulta en mi base de datos de Android, pero no devuelve ningún dato. ¿Me estoy perdiendo de algo?

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; 

Esto le devolverá el cursor requerido

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

Alternativamente, db.rawQuery (sql, selectionArgs) existe.

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

Esto también funcionará si el patrón que desea coincidir es una variable.

 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 } 

Vine aquí para un recordatorio de cómo configurar la consulta, pero los ejemplos existentes eran difíciles de seguir. Aquí hay un ejemplo con más explicación.

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

Parámetros

  • table : el nombre de la tabla que desea consultar
  • columns : los nombres de columna que desea devolver. No devuelva datos que no necesita.
  • selection : los datos de fila que desea devolver de las columnas (Esta es la cláusula WHERE.)
  • selectionArgs : Esto se sustituye por el ? En la selection String anterior.
  • groupBy y having : Esto agrupa los datos duplicados en una columna con datos que tienen ciertas condiciones. Cualquier parámetro innecesario se puede establecer en null.
  • orderBy : clasificar los datos
  • limit : limitar el número de resultados a devolver

Pruebe esto, esto funciona para mi nombre de código es una cadena:

 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); 
  • Compruebe que la base de datos sqlite está abierta o cerrada en android
  • SQLite Android no puede abrir el archivo de base de datos
  • La concurrencia de webview de Android causó SQLiteException: la base de datos está bloqueada
  • No se puede INSERTAR en SQLite, Código de error: 19
  • Consultar tabla con subclases-como las relaciones
  • SQLiteDatabase - ¿Cómo utilizar la cláusula where?
  • Acerca de la seguridad de Sqlite en android en caso de varios procesos
  • Identificador único para SMS y contactos (para comprobar la duplicación) en Android
  • Cómo obtener las cadenas de un cursor en Android?
  • Cómo insertar a granel de Json a Sqlite en Android
  • Problema en sqlite con "como" en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.