[MYSQL]文字列タイプの数字を正しい姿勢で並べ替える


今日ソートで問題が発生しました.データ型がvarcharの数字であれば、ソートの過程で、私たちが望んでいる効果ではありません.例:
sqlselect * from table order by field_varchar ;
field_varchar
0
1
11
100
2
22
3
33

ネットで検索すると、よくある方法は次のとおりです.
sqlselect * from table order by field_varchar+0;

数値に変換
field_varchar
0
1
2
3
11
22
33
100

時に入って見たのは知識欲があるので、そうです.物語はまだ終わっていません.このフィールドに空き文字がある場合はnullまたはnull.上の方法はまだ完璧ではありません.
次のような状況になります
field_varchar
0
 
1
2
3
11
22
33
100

空の文字は+0が0で、0+0も0なので、このとき不安定な0と空の上下のジャンプが発生します.では、本当に正しい姿はどうなのでしょうか.
大きなスクリーンを見てください
sqlselect * from table order by length(field_varchar),field_varchar;