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?

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 agregar fecha en la base de datos sqlite
  • Android / java Sqlite: ¿Cómo recuperar la fecha máxima?
  • ¿Cuál es la mejor manera en Android para eliminar todas las filas de una tabla
  • Archivo está encriptado o no es una base de datos (excepción net.sqlcipher.database.SQLiteException)
  • Adición de filas a una base de datos sqlite mediante un bucle (Phonegap)
  • Base de datos SQlite programaticamente convertir en formato de archivo de Excel en Android
  • SelectionArgs en SQLiteQueryBuilder no funciona con valores enteros en columnas
  • Consulta de Sqlite para varios valores en una columna
  • Eliminar varias filas en SQLITE (android)
  • Autocompletar de Android con SQLite LIKE funciona parcialmente
  • Carácter turco en SQLite mientras utiliza la expresión LIKE
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.