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

Como puedo ordernar estos datos descendentemente?

Estas en el tema de Como puedo ordernar estos datos descendentemente? en el foro de Mysql en Foros del Web. hola, necesito una ayuda.. como puedo ordenar esto 122014 122013 112014 112013 102014 102013 en esto 102013 112013 122013 102014 112014 122014 los campos son ...
  #1 (permalink)  
Antiguo 06/02/2015, 01:31
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Como puedo ordernar estos datos descendentemente?

hola, necesito una ayuda.. como puedo ordenar esto

122014
122013
112014
112013
102014
102013
en esto

102013
112013
122013
102014
112014
122014
los campos son Tipo char(6)


gracias pro su ayuda
  #2 (permalink)  
Antiguo 06/02/2015, 10:34
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Como puedo ordernar estos datos descendentemente?

Hola richardinj:

No estoy seguro, pero por el contenido que tienes en el campo y la ordenación que quieres hacer, estás almacenando una especie de fecha en formato MMYYYY... si esto es es correcto, entonces tienes un pésimo diseño de tablas... una fecha, por ningún motivo, debe ser almacenada como VARCHAR.

Aquí habría que considerar varias cosas:

Primero, ¿las cadenas son siempre de 6 caracteres?
Segundo, ¿las cadenas son siempre números?

Si respondes afirmativamente a estas dos preguntas, entonces para ordenar los datos, tienes de dos sopas:

1. Si los textos corresponden a fecha (es decir, los dos primeros dígitos van de 01 a 12 y los ultimos 4 corresponden a un año), entonces puedes tratar de convertir el texto a fecha y ordenarlo como tal.

2. Puedes hacer unas separación por partes, es decir, con la función SUBSTRING extraer las dos primeras cifras de la cadena, convertirlas a numero y ordenarlas como tal, y por otro lado, extraer las últimas 4 cifras de la cadena, las conviertes a número y las ordenas como tal.

Haz el intento y nos comentas si continuas con problemas

Saludos
Leo.
  #3 (permalink)  
Antiguo 06/02/2015, 11:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como puedo ordernar estos datos descendentemente?

Yo probaría hacer esto:
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM tabla
  3. ORDER BY REVERSE(columna);

Por otro lado, ese tipo de datos (mes y año) hubiese sido conveniente guardarlos en dos columnas numéricas. Sería más fácil ordenarlo.

Manteniendolo asi, otra posibilidad sería:

Código MySQL:
Ver original
  1. SELECT ...
  2. FROM tabla
  3. ORDER BY RIGHT(columna, 4), LEFT(columna, 2);
Pero para usar esta solución los datos deberían ser siempre de seis caracteres, cumpliendo el formato "MMAAAA", con los meses siempre en dos cifras.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo
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 12:26.