K-SUMA te ha aconsejado bien. Para los números romanos, yo te aconsejaría tratar de aprovechar el orden alfabético .
Con esta consulta ordenarás hasta tres separaciones con puntos de un campotexto, es decir, lo que tienes. Prueba y dinos. Te alcanza en números romanos hasta miles, siempre que los pongas con varias M.
Código sql:
Ver originalSELECT campotexto
FROM `tabla`
ORDER BY REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( SUBSTRING_INDEX( campotexto, '.', 1 ) , 'CM', 'ZZZZ' ) , 'M', 'ZZZZZ' ) , 'CD', 'YYYY' ) , 'D', 'YYYYY' ) , 'XC', 'XXXXXXXXX' ) , 'C', 'XXXXXXXXXX' ) , 'XL', 'XXXX' ) , 'L', 'XXXXX' ) , 'IX', 'VIIII' ) , 'X', 'VIIIII' ) , CAST( SUBSTRING_INDEX( campotexto, '.', 2 ) AS UNSIGNED ) , CAST( SUBSTRING_INDEX( campotexto, '.', 3 ) AS UNSIGNED )