En realidad el problema es que no estás entendiendo el uso del LIMIT.
Esa cláusula no expresa un rango de valores dado para un campo, sino
la cantidad de registros a mostrar de la respuesta completa de la consulta.
LIMIT tiene dos parámetros: el primero indica el
offset, es decir, el desplazamiento del punto de inicio desde el registro 1 (es base 1) hacia adelante (o "abajo"), y el segundo parámetro indica cuántos registros se tomarán para la respuesta.
el primero de los dos parámetros se puede omitir, y MySQL asumirá que debe contar desde el primero registro.
En ese contexto, suponiendo que la consulta devuelva esos cinco registros, la consulta debe decir:
Para la segunda debería decir:
Para la tercera será:
y así sucesivamente.
¿Cómo se calcula si se debe seguir?
Simple: Si devuelve menos que la cantidad pedida, es que se llegó al final de la tabla. Y si devuelve cero registros, es que la consulta anterior los agotó.
Todo este tipo de preguntas se puede resolver sin tanta discusión si te tomas la molestia de acudir al
manual de referencia:
Cita: La cláusula LIMIT puede usarse para restringir el número de registros retornados por el comando SELECT. LIMIT tiene uno o dos argumentos numéricos, que deben ser enteros positivos (incluyendo cero).
Con dos argumentos, el primer argumento especifica el desplazamiento del primer registro a retornar. El desplazamiento del registro inicial es 0 (no 1):
Por compatibilidad con PostgreSQL, MySQL también soporta la sintaxis LIMIT row_count OFFSET offset.
Para recibir todos los registros de un desplazamiento hasta el final del conjunto de resultados, puede usar algún número grande para el segundo parámetro. Ete comando recibe todos los registros desde el 96th hasta el último:
Con un argumento, el valor especifica el número de registros a retornar desde el comienzo del conjunto de resultados:
En otras palabras, LIMIT n es equivalente a LIMIT 0,n.