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
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.)