Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problemas con LIMIT 15,30

Estas en el tema de problemas con LIMIT 15,30 en el foro de Mysql en Foros del Web. Hola amigos, tengo un grave proble con la parte de LIMIT. no me respeta los parametros en este caso quiero mostrar del registro 16 al ...
  #1 (permalink)  
Antiguo 19/02/2013, 09:10
Avatar de linux_car  
Fecha de Ingreso: agosto-2010
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 0
problemas con LIMIT 15,30

Hola amigos, tengo un grave proble con la parte de LIMIT. no me respeta los parametros en este caso quiero mostrar del registro 16 al 30 pero el resultado que me arroja son los 30 resultados.

ojo si cambio los parametros a otros como por ejemplo 30,45 me arroja los 45 resultados cuando solo deberia de arrojar 15.

solo me esta respetando el ultimo parametro de LIMIT.

ayudenme por favor

Código MySQL:
Ver original
  1.         detail_product.idDetailProd AS id,
  2.         detail_product.vchColor AS color,
  3.         detail_product.vchSide AS side,
  4.         products.vchMeasure AS measure,
  5.         products.vchDescription AS description,
  6.         products.vchURLImage AS img,
  7.         detail_product.flPrice AS pricePurchase,
  8.         CONCAT("$ ",FORMAT(detail_product.flPriceSales,2)) AS price,
  9.         (IFNULL((SELECT SUM(CASE WHEN intType = 1 THEN intQuantity ELSE 0 END) - SUM(CASE WHEN intType = 0 THEN intQuantity ELSE 0 END)
  10.                     FROM history_stock
  11.                     WHERE idDetailProd = detail_product.idDetailProd AND idWarehouse =1),0)
  12.             - IFNULL((SELECT SUM(CASE WHEN bolDelivered = 0 THEN intQuantity ELSE 0 END)
  13.                     FROM stock_in_repair
  14.                     WHERE idDetailProd = detail_product.idDetailProd AND idWarehouse = 1), 0))AS stock
  15.          FROM
  16.             detail_product JOIN products USING(idProduct)
  17.         WHERE detail_product.bolDelete=0
  18.                 AND products.bolDelete=0  
  19.                 ORDER BY idDetailProd ASC
  20.                 LIMIT 15,30
  #2 (permalink)  
Antiguo 19/02/2013, 09:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: problemas con LIMIT 15,30

te hubiera bastado con mirar el manual de MySQL, pero te diré que
LIMIT 16, 30
te muestra, como le pides, desde el registro 17 (limit numera desde 0 en su primer parámetro), 30 registros más (primer número es el pjunto de partida, comenzando por 0; segundo número el total de registros a partir de ese)
http://dev.mysql.com/doc/refman/5.0/es/select.html

Si lo que quieres es mostrar del 16 al 30, en realidad quieres mostrar 14 registros partiendo del 16. Para eso usas LIMIT 17, 14
  #3 (permalink)  
Antiguo 19/02/2013, 19:59
Avatar de linux_car  
Fecha de Ingreso: agosto-2010
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo Respuesta: problemas con LIMIT 15,30

Cita:
Iniciado por jurena Ver Mensaje
te hubiera bastado con mirar el manual de MySQL, pero te diré que
LIMIT 16, 30
te muestra, como le pides, desde el registro 17 (limit numera desde 0 en su primer parámetro), 30 registros más (primer número es el pjunto de partida, comenzando por 0; segundo número el total de registros a partir de ese)
[url]http://dev.mysql.com/doc/refman/5.0/es/select.html[/url]

Si lo que quieres es mostrar del 16 al 30, en realidad quieres mostrar 14 registros partiendo del 16. Para eso usas LIMIT 17, 14
ok gracias amigo, la idea es mostrar registros de 15 en 15, de hecho el LIMIT viene desde un paginador, EL PUNTO ES QUE NO ME RESPETA ESE ORDEN ejemplo

del registro 30 al 45 (LIMIT 30,45) ME MUESTRA LOS 45 REGISTROS CUANDO SOLO DEBERIA DE MOSTRAR 15.

NO HE CHECADO ESTO( LIMIT 17, 14) PERO SEGURO ME FUNCIONARA.

GRACIAS...
  #4 (permalink)  
Antiguo 22/02/2013, 07:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: problemas con LIMIT 15,30

Cita:
del registro 30 al 45 (LIMIT 30,45) ME MUESTRA LOS 45 REGISTROS CUANDO SOLO DEBERIA DE MOSTRAR 15.
Para mostrar del registro A al registro B debes poner

LIMIT (A-1),(B-(A-1)) o lo que es lo mismo LIMIT (A-1),(B-A+1)

Es decir si quieres mostrar del 1 (A) al 5 (B)

A-1=1-1=0
B-(A-1)=B-A+1=5-1+1=5

LIMIT 0,5

A=30
B=45

A-1=30-1=29
B-A+1=45-30+1=16

LIMIT 29,16

Si quieres mostrar 15 registros despues del registro 30, es decir 31,...,45

A=31
B=45

A-1=31-1=30
B-A+1=45-31+1=15

LIMIT 30,15

Si lo analizas LIMIT 30,45 no da los 45 registros si no que da 45 registros muy concretos (31,32,....,75)

Ahora lo ves...

Tu paginador debe preocuparse del primer parametro el segundo siempre tiene que ser 15 (si quieres mostrar 15 registros por pagina)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 22/02/2013 a las 08:14
  #5 (permalink)  
Antiguo 22/02/2013, 08:43
Avatar de linux_car  
Fecha de Ingreso: agosto-2010
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo Respuesta: problemas con LIMIT 15,30

GRACIAS AMIGO...
ya funciona perfectamente.

saludos

Etiquetas: join, limit, resultados, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:37.