[MYSQL]讓字符串類型的數字按照正確的姿態排序

今天排序遇到了個問題,若是數據類型是 varchar 的數字,在排序的過程當中,出來並非咱們想要的效果。
例如:sql

sqlselect * from table order by field_varchar ;
field_varchar
0
1
11
100
2
22
3
33

在網上查找了一圈,比較常見的作法是:code

sqlselect * from table order by field_varchar+0;

轉換爲數字排序

field_varchar
0
1
2
3
11
22
33
100

點進來看的都是有求知慾的,因此對的,故事尚未完。
若是 這個字段裏面有 空字符竄 或者 null。上面的方法還不夠完美。table

會出現下面的狀況select

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;
相關文章
相關標籤/搜索