Pokud je to možné, měli byste změnit datový typ sloupce na číslo, pokud přesto ukládáte pouze čísla.
Pokud to nemůžete udělat, přeneste hodnotu sloupce na integer
explicitně s
select col from yourtable
order by cast(col as unsigned)
nebo implicitně například s matematickou operací, která vynutí převod na číslo
select col from yourtable
order by col + 0
BTW MySQL převádí řetězce zleva doprava. Příklady:
string value | integer value after conversion
--------------+--------------------------------
'1' | 1
'ABC' | 0 /* the string does not contain a number, so the result is 0 */
'123miles' | 123
'$123' | 0 /* the left side of the string does not start with a number */