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

[SOLUCIONADO] LIMIT por campo igual

Estas en el tema de LIMIT por campo igual en el foro de Mysql en Foros del Web. hola, supongamos que tengo esta tabla: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original id | cod | obj 1   | a1   | martillo 2 ...
  #1 (permalink)  
Antiguo 30/04/2014, 12:30
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años
Puntos: 5
LIMIT por campo igual

hola, supongamos que tengo esta tabla:
Código MySQL:
Ver original
  1. id | cod | obj
  2. 1  | a1  | martillo
  3. 2  | a1  | destornillador
  4. 3  | a2  | Pan
  5. 4  | a3  | zapato
  6. 5  | a4  | manzana
  7. 6  | a4  | pera
  8. 7  | a4  | uva
Lo que necesito es que mi consulta MySQL "limite" los resultados mediante el campo cod, es decir, que mi consulta sea algo así:
Código MySQL:
Ver original
  1. FROM tabla
  2. LIMIT 2 (cod)
Y devuelva los valores:
Código MySQL:
Ver original
  1. id | cod | obj
  2. 1  | a1  |  martillo
  3. 2  | a1  |  destornillador
  4. 3  | a2  |  Pan
O que si es algo así:
Código MySQL:
Ver original
  1. FROM tabla
  2. LIMIT 2 (cod)
Y devuelva los valores:
Código MySQL:
Ver original
  1. id | cod | obj
  2. 7  | a4  |  uva
  3. 6  | a4  |  pera
  4. 5  | a4  |  manzana
  5. 4  | a3  |  zapato
Como ven, lo que quiero es que el Limit 2 (cod), me limite los resultados a dos elementos distintos de la del campo cod (en el primer ejemplo arroja 3 resultados, pero pero solo 2 elementos distintos de cod que son a1 y a2. Lo mismo que en el segundo ejemplo arroja 4 resultados, pero pero solo 2 elementos distintos de cod que son a3 y a4)
  #2 (permalink)  
Antiguo 30/04/2014, 12:36
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: LIMIT por campo igual

Ese no es el objetivo de LIMIT.
LIMIT lo que hace es restringir la cantidad de registros, sobre el total de registros obtenidos, pero no hace evaluaciones sobre su contenido o valores de campos.
Para ese tipo de valoraciones se usan el WHERE y eventualmente el HAVING. Es con esos como debes discriminar qué registros mostrará.

Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE cod IN(
  3.     SELECT DISTINCT cod
  4.     FROM tabla
  5.     ORDER BY cod DESC
  6.     LIMIT 2);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/04/2014, 12:48
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años
Puntos: 5
Respuesta: LIMIT por campo igual

Gacias! lo probaré y te digo.
  #4 (permalink)  
Antiguo 30/04/2014, 12:51
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: LIMIT por campo igual

Cita:
Ahora bien, podrías darme un ejemplo de cómo hacer eso usando WHERE o HAVING?
¿Algo como el ejemplo que ya te puse?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 30/04/2014, 13:08
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años
Puntos: 5
Respuesta: LIMIT por campo igual

De donde sacaste esa cita?

Gracias por tu ejemplo, pero no me funciona, me sale el siguiente error:
Código de error:
Ver original
  1. This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
  #6 (permalink)  
Antiguo 30/04/2014, 13:16
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: LIMIT por campo igual

¿Qué versión de MySQL estás usando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 30/04/2014, 13:41
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años
Puntos: 5
Respuesta: LIMIT por campo igual

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Qué versión de MySQL estás usando?
Utilizo la versión 5.5.29. El personal de hosting dice que no puedo cambiarlo y que ellos siempre lo mantienen actualizado a la última versión o la más estable.

Post-data: Ni te inmutaste por lo de la cita... en realidad lo que pasó fue que edité el mensaje que citaste antes de que envíes tu comentario (lo mismo que me pasó a mi con lo de preguntar por el ejemplo).
  #8 (permalink)  
Antiguo 30/04/2014, 13:52
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: LIMIT por campo igual

Te recomiendo no borrar cuando editas, para que no se generen ese tipo de cosas. Es mejor agregar.
Probemos así:
Código MySQL:
Ver original
  1. SELECT T1.*
  2. FROM tabla T1
  3.     SELECT DISTINCT cod
  4.     FROM tabla
  5.     ORDER BY cod DESC
  6.     LIMIT 2) T2 ON T1.cod = T2.cod;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 30/04/2014, 14:07
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años
Puntos: 5
Respuesta: LIMIT por campo igual

Recomendación aceptada y muchísimas gracias funciona perfecto!!!
  #10 (permalink)  
Antiguo 30/04/2014, 14:10
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: LIMIT por campo igual

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, igual, limit, select, sql, tabla
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 19:30.