[ Foro de SQL (y MySQL) ]

imposible ordenar año letras numero

10-Jan-2018 20:40
Invitado (pepe)
1 Respuestas

Hola a todos compañeros,
estoy volviendome un poco loco para poder ordenar de una forma sencilla un campo de mysql en mi programa php.
El campo tiene la siguiente estructura:

AñoLetrasNumero

Ejemplo:

17ABC10
17ABC11
18ABC1
etc.

Este ser?a el orden correcto.
He probado usando "order by length(numero), numero" que entiendo que primero te lo ordena según longitud de menos a mas y luego por el numero. Esto me sirve si todos los campos tienen la misma longitud, pero en este caso me pone el 18ABC1 primero. Si lo hago al reves "order by numero, length(numero)" me pone primero el 18ABC10 que el 18ABC2, en fin que no se que mas probar

Hay alguna forma sencilla de hacer esto?

gracias


24-Jan-2018 23:30
Nacho Cabanes (+83)

Es que la longitud no te sirve de nada. Deberías ordenar según los tres fragmentos, uno tras otro, usando "substring" (e incluso convirtiendo a su valor numérico en ciertos casos, si "1" debe aparecer antes de "11").






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)