Ver Mensaje Individual
  #21 (permalink)  
Antiguo 06/01/2012, 16:14
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: agrupar por campos y ordenar

Hola de nuevo...

Ya di con el error, pero es bastante raro... el problema es que la asignación del row_number la hace antes de ordenar... prueba así:

Código MySQL:
Ver original
  1. mysql> SELECT fecha, usuario, comentarista,
  2.     -> @num := @num + 1 AS row_number FROM
  3.     -> (SELECT MAX(fecha) fecha, usuario, comentarista
  4.     -> FROM `comentarios_comuns`
  5.     -> WHERE usuario = 'fran'
  6.     -> GROUP BY usuario, comentarista
  7.     -> ORDER BY fecha DESC) T1;
  8. +-------+---------+--------------+------------+
  9. | fecha | usuario | comentarista | row_number |
  10. +-------+---------+--------------+------------+
  11. | 2012  | fran    | laura        |          1 |
  12. | 2011  | fran    | angel        |          2 |
  13. | 2000  | fran    | helen        |          3 |
  14. +-------+---------+--------------+------------+
  15. 3 rows in set (0.03 sec)

No tengo idea de por qué hace esto... pero en fin... también podrías buscar otras técnicas para enumerar registro, la idea es simplemente que agregue una secuencia 1,2,3, [...], n para cada registro, esta es sólo una de forma de hacerlo, pero hay muchas más.

Finalmente, no es recomendable que utilices sólo campos varchar en tu tabla pues además de ser un verdadero desperdicio de memoria también implica tener que hacer validaciones extras... pues tendrías que verificar por código que por ejemplo no se captures caracteres en tu campo fecha... En lugar de eso elige el tipo de dato adecuado, te quitarás de muchos problemas.

Saludos
Leo.