Ver Mensaje Individual
  #10 (permalink)  
Antiguo 25/02/2011, 13:56
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Agregar indice a campo repetido

Hola compañer@s...

Hace algún tiempo encontré una forma de hacer esto mismo utilizando las funciones GROUP_CONCAT y FIND_IN_SET... igual y y la pueden probar para ver si les puede ayudar.

Código MySQL:
Ver original
  1. mysql> create table nombre (id_nombre int, nombre varchar(20));
  2. Query OK, 0 rows affected (0.05 sec)
  3.  
  4. mysql> insert into nombre values (1, 'Carlos'), (2, 'Juan'), (3, 'Carlos'), (4,
  5. 'Carlos'), (5, 'José');
  6. Query OK, 5 rows affected (0.02 sec)
  7. Records: 5  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> #mostramos los resultados originales
  10. mysql> select * from nombre;
  11. +-----------+--------+
  12. | id_nombre | nombre |
  13. +-----------+--------+
  14. |         1 | Carlos |
  15. |         2 | Juan   |
  16. |         3 | Carlos |
  17. |         4 | Carlos |
  18. |         5 | José   |
  19. +-----------+--------+
  20. 5 rows in set (0.00 sec)
  21.  
  22. mysql> #obtenemos los registros numerados
  23. mysql> SELECT T2.id_nombre, CONCAT(T2.nombre, ' (',
  24.     -> FIND_IN_SET(T2.id_nombre ,
  25.     -> (
  26.     -> SELECT GROUP_CONCAT(id_nombre ORDER BY id_nombre, nombre DESC)
  27.     -> FROM nombre T1 WHERE T1.nombre = T2.nombre )
  28.     -> ), ')') as nombres FROM nombre T2;
  29. +-----------+------------+
  30. | id_nombre | nombres    |
  31. +-----------+------------+
  32. |         1 | Carlos (1) |
  33. |         2 | Juan (1)   |
  34. |         3 | Carlos (2) |
  35. |         4 | Carlos (3) |
  36. |         5 | José (1)   |
  37. +-----------+------------+
  38. 5 rows in set (0.00 sec)

Saludos y espero que les pueda servir de algo.
Leo