如何按最大数量订购

时间:2012-01-17 13:21:03

标签: mysql

我有一个非常简单的问题,我想......

我有一个存储文件字节大小的数据库字段。我想按最大的file_size订购,但是它没有像我希望的那样工作......

我试过

SELECT * 
FROM file_data
ORDER BY file_size DESC

SELECT * 
FROM file_data
ORDER BY MAX( file_size ) DESC

感谢。

编辑:

它没有按预期工作的原因是因为这些是第一个查询的结果:

ID    file_size
13    980616    
200    9782897  
199    9732752  
187    967006   
166    9614688  
12    9481028   
44    945120    
65    9228440   
208    92140357

3 个答案:

答案 0 :(得分:6)

如果file_size是CHAR / VARCHAR字段,结果可能不是您的预期(编辑:为了支持我的论文,您发布的结果集似乎按字母顺序排序)

因此,尝试将列数据类型更改为INTEGER,或者,如果您无法更改表,请使用

在查询中进行显式转换
SELECT * 
FROM file_data
ORDER BY CAST(file_size AS INTEGER) DESC

请参阅http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

答案 1 :(得分:3)

CASTCONVERT应解决您的问题

SELECT * 
FROM file_data
ORDER BY CONVERT(file_size,INTEGER) DESC

答案 2 :(得分:0)

您的第一个代码应该可以工作,尝试将列数据类型更改为INTEGER或使用显式强制转换。