得分字段為varchar
那么按得分排序得到的結果可能是:
1
10
11
123
1234
2
25
253
3
但是我們想要按照數字排序
1
2
3
10
11
25
123
1234
253
這時候只需要
//一種 、
數字字符串為01 0100 02 0200 一排序就是這個順序,我想要變成01 02 0100 0200 就用下面這個辦法
把這個字段轉為int 然后再排 序就對了。
ORDER BY CAST(字段名 AS DECIMAL)
//另一種
假如你要排序的字段名為 mynum,
如果 mynum 是 int 型,直接排序即可: order by mynum
如果 mynum 是 string 型,但存的是數值,並且要出現你說的自然排序效果的話,要這樣做: order by mynum+0
m/benweet/stackedit
最后一種
使用MySQL絕對值函數ABS,它告訴MySQL使用絕對值來處理處理這個字段:
ORDER BY ABS(字段名)
版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chenaini119/article/details/51733655