Limitación de una consulta SQLite en android
Estoy utilizando una base de datos SQLite en mi aplicación Android, y tengo una función que selecciona las filas de una determinada tabla:
public Cursor getAllDiscounts() { // return db.query(table, columns, selection, selectionArgs, groupBy, // having, orderBy); return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_PORTALNAME, KEY_TITLE, KEY_TITLESHORT, KEY_DEALURL, KEY_ENDDATE, KEY_COORDS, KEY_CITY, KEY_IMAGEDEAL, KEY_CLICKPRICE, KEY_CONVERSIONPERCENTAGE, KEY_FINALPRICE, KEY_ORIGINALPRICE, KEY_SALES, KEY_KATEGORIJA, KEY_POPUST }, null, null, null, null, null, null); }
Lo que quiero hacer es seleccionar las filas que comienzan en una determinada fila y limitar el resultado a otro número. Así, por ejemplo, quiero comenzar en la décima fila y seleccionar las siguientes 20 filas. Lo intenté así:
- Base de datos no copiar desde activos
- Encriptación de contraseña de Android SQlite?
- SQLite de Android - Cursor y ContentValues
- Cómo obtener el tamaño de la base de datos sqlite actual o el tamaño del paquete en Android?
- Consulta Sqlite para la clasificación de fechas
public Cursor getAllDiscounts() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_PORTALNAME, KEY_TITLE, KEY_TITLESHORT, KEY_DEALURL, KEY_ENDDATE, KEY_COORDS, KEY_CITY, KEY_IMAGEDEAL, KEY_CLICKPRICE, KEY_CONVERSIONPERCENTAGE, KEY_FINALPRICE, KEY_ORIGINALPRICE, KEY_SALES, KEY_KATEGORIJA, KEY_POPUST }, null, null, null, null, null, "10, 20"); }
Pero la aplicación se bloquea. También intenté con "LIMIT 10,20" en lugar de "10, 20", pero eso tampoco funciona. ¿Nadie?
- "Código de error 5: la base de datos está bloqueada" cuando se utiliza un ContentProvider
- Examinar la base de datos SQLite de mi aplicación para Android?
- Obtención de una excepción SQLiteCantOpenDatabaseException
- SQLite - No se pudo abrir el archivo de base de datos
- ¿Cómo puedo encontrar mi archivo de base de datos SQLite en mi computadora?
- SQLite para la vista de tabla personalizada de Android (vista de SQL, no vista de Android) discrepancia?
- Mejor manera de acceder a la base de datos en la aplicación multi-threaded Android?
- ¿Por qué utilizar SQLiteOpenHelper sobre SQLiteDatabase?
La cláusula límite debe ser "10,20" sin espacio entre el coma y el 20.
public Cursor getAllDiscounts() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_PORTALNAME, KEY_TITLE, KEY_TITLESHORT, KEY_DEALURL, KEY_ENDDATE, KEY_COORDS, KEY_CITY, KEY_IMAGEDEAL, KEY_CLICKPRICE, KEY_CONVERSIONPERCENTAGE, KEY_FINALPRICE, KEY_ORIGINALPRICE, KEY_SALES, KEY_KATEGORIJA, KEY_POPUST }, null, null, null, null, null, "10,20"); }
Utilice "limit 10 offset 20" como cláusula límite.
public Cursor getAllDiscounts() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_PORTALNAME, KEY_TITLE, KEY_TITLESHORT, KEY_DEALURL, KEY_ENDDATE, KEY_COORDS, KEY_CITY, KEY_IMAGEDEAL, KEY_CLICKPRICE, KEY_CONVERSIONPERCENTAGE, KEY_FINALPRICE, KEY_ORIGINALPRICE, KEY_SALES, KEY_KATEGORIJA, KEY_POPUST }, null, null, null, null, null, " limit 10 offset 20"); }
Prueba esto:
db.rawQuery("SELECT * FROM " + TABLE_NAME + " ORDER BY " + ORDER_BY + " LIMIT 0, 20", NULL);
db.rawQuery("SELECT * FROM com_kkorm_data_Entity WHERE id!=0 ORDER BY id LIMIT 0,2",null);
Tal vez mi sql puede ayudarle a entender sql sql
- ¿Cómo detener Runnable en el botón de hacer clic en Android?
- Android CountDownTimer – retraso de milisegundos adicional entre las garrapatas