SELECT _table.*
# , RPAD(SUBSTRING_INDEX(_table._col, ':', 1), 3, 0)
FROM
(
SELECT
CAST('1' AS CHAR) AS _col
UNION
SELECT
'1:3'
UNION
SELECT
'2:1'
UNION
SELECT
'2:2'
UNION
SELECT
'3'
UNION
SELECT
'3:1'
UNION
SELECT
'12:2'
UNION
SELECT
'21:2') _table
ORDER BY RPAD(SUBSTRING_INDEX(_table._col, ':', 1), 3, 0),
RPAD(SUBSTRING_INDEX(_table._col, ':', 2), 5, 0)
;