Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/09/2012, 14:53
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: consulta repeticion resultados

Hola yeyowave:

Si bien es cierto lo que tienes puede no ser un error de diseño, me cuesta encontrar una razón de peso para hacer lo que estás pidiendo... es decir ¿Qué sentido le encuentras a mostrar la información de esta manera? estéticamente se ve muy mal, considero que es un desperdicio de espacio y algo completamente innecesario, pero igual y tu tienes alguna razón que nos pueda convencer de lo contrario... Pero bueno, como hay ocasiones en que a final de cuentas un programador puede estar supeditado a lo que el cliente pide... ("Jerarquía mata razón" escuché alguna vez en una reunión con altos directivos), veamos una opción para hacer lo que quieres (aunque insisto que no le veo caso)

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+-------------+
  3. | id   | descripcion |
  4. +------+-------------+
  5. |    1 | uno         |
  6. |    2 | dos         |
  7. |    3 | tres        |
  8. +------+-------------+
  9. 3 rows in set (0.01 sec)
  10.  
  11. mysql> SELECT * FROM tabla WHERE id IN (1, 1, 1, 2, 3, 3);
  12. +------+-------------+
  13. | id   | descripcion |
  14. +------+-------------+
  15. |    1 | uno         |
  16. |    2 | dos         |
  17. |    3 | tres        |
  18. +------+-------------+
  19. 3 rows in set (0.00 sec)
  20.  
  21. mysql> SELECT * FROM tabla WHERE id = 1
  22.     -> UNION ALL
  23.     -> SELECT * FROM tabla WHERE id = 1
  24.     -> UNION ALL
  25.     -> SELECT * FROM tabla WHERE id = 1
  26.     -> UNION ALL
  27.     -> SELECT * FROM tabla WHERE id = 2
  28.     -> UNION ALL
  29.     -> SELECT * FROM tabla WHERE id = 3
  30.     -> UNION ALL
  31.     -> SELECT * FROM tabla WHERE id = 3;
  32. +------+-------------+
  33. | id   | descripcion |
  34. +------+-------------+
  35. |    1 | uno         |
  36. |    1 | uno         |
  37. |    1 | uno         |
  38. |    2 | dos         |
  39. |    3 | tres        |
  40. |    3 | tres        |
  41. +------+-------------+
  42. 6 rows in set (0.01 sec)

Observa que la cláusula IN en realidad no te sirve para nada, pues esta descarta los valores repetidos, la opción sería no utilizar esta u hacer una iteración o un UNION ALL para cada uno de los elementos... esto obviamente no tiene nada de eficiente, pero de entrada es lo único que se me ocurre para hacer lo que quieres.

Saludos
Leo.