¿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;
- Eliminación automática de objetos anidados en ORMLite
- La aplicación se bloquea al actualizar la base de datos sqlite por primera vez
- Uso correcto de Sqlite en Android (SQLiteOpenHelper, conexiones, hilo principal, etc ...)
- El ejemplo de NotesDbAdapter es para una tabla, ¿qué hay de varias tablas?
- Android: utiliza UUID como clave principal en SQLite
- SQLite: No se puede enlazar argumento en el índice 1 porque el índice está fuera de rango. La sentencia tiene 0 parámetros
- No se puede degradar la base de datos de la versión 2 a 1 incluso después de una nueva instalación y volver a ejecutar
- Intento de reabrir un objeto sqlitedatabase ya cerrado
- SQLiteException "no puede confirmar - ninguna transacción está activa" al insertar con CONFLICT_REPLACE
- SimpleCursorAdapter de Android con consultas utilizando DISTINCT
- Android cursor cómo obtener valores nulos de columnas
- ¿Preguntas con declaraciones preparadas en Android?
- SQLite Transformar columnas en cadena delimitada por comas
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 laselection
String anterior. -
groupBy
yhaving
: 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);