SELECT *
FROM (
SELECT '1-1' Id
UNION ALL
SELECT '1-5' Id
UNION ALL
SELECT '1-14' Id
UNION ALL
SELECT '1-7' Id
UNION ALL
SELECT '1-3' Id
UNION ALL
SELECT '10-4' Id
) a
ORDER BY
CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(id, '-', -2), '-', 1) AS UNSIGNED),
CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(id, '-', -1), '-', 1) AS UNSIGNED)
source
share