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í:

 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?

4 Solutions collect form web for “Limitación de una consulta SQLite en android”

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

  • Android SQLite - Nueva tabla VS. Nueva base de datos
  • Cómo almacenar un valor de tiempo en la base de datos SQLite en Android?
  • Error al descifrar en java
  • Problema al mostrar nombres de elementos junto con imágenes que se almacenan en sqlite para android
  • Android ExpandableListView y base de datos SQLite
  • ¿Cómo medir el tamaño de los datos de las aplicaciones de Android e identificar las fugas de almacenamiento?
  • Actualización de versiones de base de datos sqlite?
  • Importar archivo .csv a Sqlite en Android
  • Cambiar el número de versión de la base de datos SQLite
  • Android: Base de datos SQLite. ¿Necesitamos crearlo?
  • ¿Cómo seleccionar valores distintos de una columna en la tabla?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.