Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/04/2007, 10:20
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: alguien tiene la solucion del Order BY?

Eso de que la consulta que haces te devuelve un resultado que no debe ser:
Cita:
Iniciado por vb2005 Ver Mensaje
| 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 CASTcontador 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