订购具有不同位数的MySQL数据

Mr.*_*ing 0 php mysql

使用标准时,我在使用MySQL时遇到一些麻烦

ORDER BY c DESC 
Run Code Online (Sandbox Code Playgroud)

它是这样订购:

3
21
20
2
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的顺序:

21
20
3
2
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有在单个数字前添加0的情况下这样做?

cee*_*yoz 5

将列从字符串(VARCHAR,TEXT等)更改为数字列(DOUBLE,INT等).字符串将按字母顺序排序,3位于2之后.

或者,您可以强制转换它,但这会为查询添加处理:

ORDER BY CAST(c AS INTEGER) DESC
Run Code Online (Sandbox Code Playgroud)