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

limitar repetidos a dos

Estas en el tema de limitar repetidos a dos en el foro de Mysql en Foros del Web. Hola, tengo esta sentencia: SELECT * FROM tabla GROUP BY campoo ORDER BY rand( ) LIMIT 0 , 40 y me muestra un registro de ...
  #1 (permalink)  
Antiguo 18/06/2008, 11:19
 
Fecha de Ingreso: junio-2008
Mensajes: 14
Antigüedad: 15 años, 11 meses
Puntos: 0
limitar repetidos a dos

Hola, tengo esta sentencia:

SELECT *
FROM tabla
GROUP BY campoo
ORDER BY rand( )
LIMIT 0 , 40

y me muestra un registro de cada repetido "campoo" y me gustaría mostrar no sólo una, si no dos (no más); hay alguna manera de hacerlo con una sentencia mysql?

Muchísmas gracias

Angelicorum
  #2 (permalink)  
Antiguo 18/06/2008, 12:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: limitar repetidos a dos

Si no es necesario que vayan seguidos en el número de id, esto te mostrará dos de cada, el que tenga el primer id y el que tenga el último id de cada uno de esos campos cuyo contenido aparezca repetido. He añadido a la consulta un campo id.

SELECT a.id, a.campoo FROM tutabla a INNER JOIN (SELECT MAX(id) as maximo, MIN(id) AS minimo, campoo FROM tutabla GROUP BY campoo HAVING COUNT(campoo )>1 ) AS T1 ON a . campoo =T1 . campoo WHERE a.id = T1.maximo OR a.id = T1.minimo ORDER BY a.campoo, a.id

El procedimiento es hacer una selección agrupando por campoo de aquellos que tienen repeticiones, seleccionando el id mínimo y el máximo por grupo. Luego por encima un inner join basado en campoo con una selección de la tabla y haciendo coincidir el id de tu tabla con el máximo o bien con el mínimo, y ordenando los registros seleccionados por campo e id de la tabla.

De todas formas, según creo, este tipo de cosas es más fácil hacerlas con programación.

Última edición por jurena; 18/06/2008 a las 13:52
  #3 (permalink)  
Antiguo 20/06/2008, 02:02
 
Fecha de Ingreso: junio-2008
Mensajes: 14
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: limitar repetidos a dos

Sí, ciertamente he acabado programándolo, de todos modos me guardo esta consulta en el bolsillo porque me va a hacer falta para otra cosa. Muchas gracias por tu respuesta.
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 22:49.