Jeśli to możliwe, powinieneś zmienić typ danych kolumny na liczbę, jeśli i tak przechowujesz tylko liczby.
Jeśli nie możesz tego zrobić, rzutuj wartość kolumny na integer
wyraźnie z
select col from yourtable
order by cast(col as unsigned)
lub domyślnie na przykład za pomocą operacji matematycznej, która wymusza konwersję na liczbę
select col from yourtable
order by col + 0
BTW MySQL konwertuje ciągi znaków od lewej do prawej. Przykłady:
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 */