我有一个非常简单的问题,我想......
我有一个存储文件字节大小的数据库字段。我想按最大的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
答案 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)
CAST
或CONVERT
应解决您的问题
SELECT *
FROM file_data
ORDER BY CONVERT(file_size,INTEGER) DESC
答案 2 :(得分:0)
您的第一个代码应该可以工作,尝试将列数据类型更改为INTEGER或使用显式强制转换。