VARCHAR
MySQL データベースに番号を保存しています。INT
他の状況により、番号を作成できません。
ソート時に数値ではなく文字として扱われます。
データベースには
1 2 3 4 5 6 7 8 9 10...
私のページには、次のような順序付きリストが表示されます。
1 10 2 3 4 5 6 7 8 9
数字の昇順で表示させるにはどうしたらよいでしょうか?
ベストアンサー1
とにかく数値のみを保存する場合は、可能であれば列のデータ型を数値に変更する必要があります。
それができない場合は、列の値を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 */