Cita:
Iniciado por frasko01
Hola amigos.
He visto otro tema en el foro que explicais que para que se ordenen los numeros en mysql se guardan como TINYINT y solucionado, pero... yo necesito ordenar un varchar que tiene algo así:
I.1.1
I.1.10
I.1.2...........
Y no le puedo poner un cero delante a cada uno, no queda nada bien.
Muchas gracias. Un saludo.
Puedes intentar esto:
select campo from prueba
order by SUBSTRING_INDEX(campo, '.', 1), /* aqui ordenas los numero romanos */
cast(SUBSTRING_INDEX(SUBSTRING_INDEX(campo, '.', -2),'.',1) as decimal), /* extraemos los numeros del segundo nivel y los converitmos en numeros */
cast(SUBSTRING_INDEX(campo, '.', -1) as decimal) /* extraemos los numero del tercer nivel y los convertimos en numero */
Salu2,