Eso de que la consulta que haces te devuelve un resultado que no debe ser:
Cita:
Iniciado por vb2005
| 9 |
| 550 |
|1357 |
| 10 |
|-----|
es porque tu campo es de tipo cadena y mysql ordena estos campos en un
orden lexicográfico que no se ordena en una forma que nosotros siempre hacemos y que se llama
orden natural.
Un ejemplo de comparación de cadenas en función de un "orden lexicografico" es el siguiente: "9" es mayor que la cadena "550" porque 9 viene después de 5 (
550).
Para resolver esto, es tan sencillo como utilizar la función CAST() de MySQL dentro de tu consulta. Si por ejemplo, tuvieramos un campo llamado contador y este es de typo VARCHAR cuando hacemos una consulta de este tipo:
Código PHP:
SELECT contador FROM caracteres ORDER BY contador DESC;
Nos va a devolver un resultado igual al tuyo, y lo resolveremos de esta manera:
Código PHP:
SELECT contador FROM caracteres ORDER BY CAST( contador AS UNSIGNED ) DESC;
dandonos como resultado:
|1357|
| 550 |
| 10 |
| 9 |
|-----|
Espero que haberme dado a entender y que esto te haya servido por lo menos para darte una idea. Suerte