Ver Mensaje Individual
  #12 (permalink)  
Antiguo 18/03/2016, 04:50
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Aprendiendo a cambiar de mysql a mysqli

Cita:
Iniciado por xerifandtomas Ver Mensaje
Obviamente no te da el mismo resultado por qué los limit no son iguales.

No es lo mismo esto
Código SQL:
Ver original
  1. SELECT campo FROM TABLE WHERE ... LIMIT 1,3
Qué esto
Código SQL:
Ver original
  1. SELECT campo FROM TABLE WHERE ... LIMIT 3

En cuanto a las sentencias SQL en si mismas, no hay ninguna diferencia entre una librería y otra, lo único que varía es la forma de ejecutarlas.
Esto ahora es OFF TOPIC en PHP.
POdrías fijarte mejor cual es el lenguaje sobre el que va la duda, y postear en el foro correcto, ¿no te parece?

La respuesta de la diferencia de comportamiento entre LIMIT 1, 3 y LIMIT 3 es un tema de MySQL, no de PHP y es simple: Cuando pones sólo un parámetro (LIMIT M) MySQL devolverá las M primeras líneas, mientras que cuando pones dos (LIMIT N, M) desplazará el puntero de registros N líneas hacia adelante, y recién entonces devolverá los M siguientes resultados.

LIMIT 1, 3 le indica a MySQL que devuelva los registros, 2, 3 y 4 de los que se hayan obtenido. Por eso, si hubiese 1 sólo registro, simplemente no te devolverá nada.
Para que se puedan poner dos parámetros, my el resultado sea equivalente al LIMIT 3, debería ser:
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM ...
  3. WHERE ...
  4. LIMIT 0, 3

Por otro lado, hay que considerar que tienes un WHERE, y si las condiciones de una y otra no son exactamente las mismas, los resultados de las ejecuciones no son comparables.

Posdata: SQL, por más que lo pongas embebido en PHP, sigue siendo tema del foro de BBDD
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)