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

Ordenar resultados..

Estas en el tema de Ordenar resultados.. en el foro de Mysql en Foros del Web. Hola señores.. les hago una pregunta interesante para algunos y talvez facil para otros.. tengo estos datos.. en una columan.. A1 A2 A3 A4 A5 ...
  #1 (permalink)  
Antiguo 30/08/2009, 03:41
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Ordenar resultados..

Hola señores.. les hago una pregunta interesante para algunos y talvez facil para otros..

tengo estos datos.. en una columan..

A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
......
A19
A20
A21
A22

El detalle es que yo quiero que me bote los resultados en ese orden,.,. (El campo es un varchar )... pero cuando hago un ORDER BY columna ASC
me muesta asi..

A1
A11
A12
A13
A14
.....
A19
A2
A20
A21
A22
...
A29
A3
A30
A31
...

Como puedo hacer para que me muestre...

A1
A2
A3
.....
A8
A9
A10
A11


Saludos y gracias de antemano..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #2 (permalink)  
Antiguo 30/08/2009, 06:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ordenar resultados..

Primero una pregunta: ¿no sería preferible separar caracteres de números en dos campos y luego reunirlos para mostrarlos?

No obstante, si lo tienes así y lo prefieres, y siempre va a tener una sola letra por delante de los números, es decir no habrá un AN14, ni nada semejante, puedes usar esto:

SELECT *
FROM tabla
ORDER BY substring( campo, 1, 1 ) , CAST( substring( campo, 2 ) AS UNSIGNED )
  #3 (permalink)  
Antiguo 30/08/2009, 21:44
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Ordenar resultados..

Muy buena.. solucion.. en realidad.. muchas gracias.. pero solo funciona para ese caso.. pero ya me da la solucion.. el dilema es que cuando empiecen a llenar mas datos.. se tiene proyectado.. lo siguiente..

A1
A2
...
A99
B1
B2
B3
....
B99
C1
...
Z1
Z2
Z3
...
Z99

Aqui cuando se termine todo el alfabeto.. se empezara com el excel jejeje

AA1
AA2
AA3
...
AA99
AB1
AB2
AB3
....

Y asi sucesivamente.. cuando empieze a tener.. codigos con dos digitos literales esa consulta ya no funcionara..
Alguna alternativa sin dividir.. el codigo en dos columnas ????

Gracias..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #4 (permalink)  
Antiguo 31/08/2009, 05:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ordenar resultados..

Prueba así:
SELECT * FROM `tabla` ORDER BY cast (campo as char), cast(campo as unsigned)

El cast eliminará el resto del campo; cuando se hace a carácter, eliminará los números, y cuando se hace a unsigned eliminará el los alfabéticos. Ordenas primero por un cast y luego por el otro, y funcionará, creo.
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 19:33.