[Duda chiquita]: Una función de rangos

Iniciado por Leguim, 13 Julio 2019, 23:26 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Hola, buenas noches!

Soy una persona algo obsesiva y quiero que todo funcione como se debe sin el mas mínimo error, es por eso que hoy quería hacerles una pregunta sencilla pero que me genera una duda.

Con rangos me refiero a una consulta que llama en la base de datos determinados datos, digamos... "SELECT * FROM users ORDER BY id ASC LIMIT ".$a.",".$b

A = El punto de entrada desde donde comenzará a tomar datos.
B = La cantidad de datos que esta función podrá obtener.

Es decir digamos que A y B es 0 y 5
Nos devolvería lo siguiente:
0. Franco Armani
1. Milton Casco
2. Gabriel Mercado
3. Leonardo Pisculichi
4. Leonardo Ponzio

Como ven comienza desde 0 y recorre 5 usuarios, la pregunta es digamos que yo tengo en mi base de datos a 0. Franco Armani, 1. Milton Casco, 2. Gabriel Mercado y 3. Leonardo Pisculichi.. Por alguna razón el último dato ya no existe (se borra)
Al usar nuevamente esta función de (0;5) ¿Me arrojará algún error o es una mala práctica ya que ahora sólo abran 4 usuarios y no 5 como antes?

Gracias!

tosk

No devolverá ningún error. Yo no lo veo mala practica, de hecho el OFFSET sirve para eso, para limitar un rango de resultados.

Aquí puedes ver una tabla con 91 registros y que pasa si intentamos que devuelva 100:
https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc


SELECT * FROM Customers
ORDER BY CustomerName ASC
LIMIT 0,100;


También ir con cuidado, que el LIMIT y OFFSET no es para filtrar por el típico ID autoincremental, sino que son filtros en base a los resultados de la query.

Leguim