とにかく数値のみを格納する場合は、可能であれば、列のデータ型を数値に変更する必要があります。
それができない場合は、列の値をinteger
にキャストします。 明示的に と
select col from yourtable
order by cast(col as unsigned)
または暗黙的に たとえば、数値への変換を強制する数学演算を使用します
select col from yourtable
order by col + 0
ところで、MySQLは文字列を左から右に変換します。例:
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 */