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

时间:2011-12-09 22:37:10

标签: php mysql

使用标准

时,我在使用MySQL时遇到了一些问题
ORDER BY c DESC 

这样订购:

3
21
20
2

我希望它是这样的顺序:

21
20
3
2

如果没有在单位数字之前加0,我有什么方法可以做到这一点?

3 个答案:

答案 0 :(得分:5)

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

或者,您可以投射它,但这会为查询添加处理:

ORDER BY CAST(c AS INTEGER) DESC

答案 1 :(得分:2)

您的字段是varchar。更改类型或投射它。

ORDER BY cast(c as unsigned) DESC 

答案 2 :(得分:0)

您可以按该列的converted to numeric representation订购。