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 originalmysql
> SELECT fecha
, usuario
, comentarista
, -> @num
:= @num
+ 1 AS row_number
FROM -> (SELECT MAX(fecha
) fecha
, usuario
, comentarista
-> FROM `comentarios_comuns` -> WHERE usuario
= 'fran' +-------+---------+--------------+------------+
| fecha | usuario | comentarista | row_number |
+-------+---------+--------------+------------+
| 2012 | fran | laura | 1 |
| 2011 | fran | angel | 2 |
| 2000 | fran | helen | 3 |
+-------+---------+--------------+------------+
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.