Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

El order by no me indexa como debería...

Estas en el tema de El order by no me indexa como debería... en el foro de Mysql en Foros del Web. Hola a todos, Tengo un campo en una de mis tablas de la base de datos que se llama 'orden' que es un CHAR (5) ...
  #1 (permalink)  
Antiguo 21/06/2007, 02:59
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 5 meses
Puntos: 0
El order by no me indexa como debería...

Hola a todos,

Tengo un campo en una de mis tablas de la base de datos que se llama 'orden' que es un CHAR (5)

Este, es un campo UNICO, con el que deseaba 'jugar' para hacer un ORDER BY 'orden' a mi antojo. Es decir a un registro le meto 1 a otro 5 a otro 1000, pero deseo que me los ordene en sentido ascendente.

El problema es que me figura antes el 21 que el 3.

Es decir, sigue este orden:

1,2,21,22,23,3,31,32,4,5,6,7,8,9,10,11

Alguien se le ocurre como arreglar esto? Seguro que hay una manera facil que desconozco totalmente...
  #2 (permalink)  
Antiguo 21/06/2007, 03:18
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: El order by no me indexa como debería...

muy sencillo ...

El problema es que has definido el campo como un campo de texto y en este caso SIEMPRE tendrás el problema de ordenación tipo 1, 10, 2, 20, 3, 30,.....

Solución 1: Cambia el tipo de datos a un numérico entero

Solución 2: Ten la precaución de utilizar tantos 0's como dígitos máximos tenga el campo de orden...me explico, si vas a llegar hasta 100, para introducir el nº 1 -> 001, 002, 003, 004, 005, etc....

...de todas formas, la solución más sencilla y más pulida es utilizar el campo con su tipo de datos CORRECTO!!!
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:47.