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 obtener datos de Cursor en ContextMenu
  • ¿Cuál es la forma más rápida de cargar 10000 filas de la base de datos SQLite?
  • Cómo utilizar FTS3 en SQLite
  • Android busca base de datos SQLite en el teléfono
  • El grupo por consulta no funciona en android 2.1
  • Cómo lograr una relación de "herencia" en la base de datos SQLite en Android
  • SQLite en el operador en query ()
  • ¿Cualesquiera buenas herramientas de ORM para el desarrollo de Android?
  • Cómo agregar la cláusula de límite a manageQuery en android
  • El incremento automático de SQLite no funciona
  • 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.