ORDER BY DESC无法正常工作

时间:2014-05-01 22:56:41

标签: mysql sql

我有这个SQL查询

SELECT `price` FROM `used_cars` ORDER BY `price` DESC 

所以我显然想按价格从高到低排序。然而,它似乎采取了第一个数字,并按此排序。我的理论是它将它视为一个字符串,并且因为列是varchar它是有道理的。但是,这是第三方数据,所以我坚持使用它。我如何订购以便让更大的数字出现?

所以这是一个如何订购的例子

9698
8999
8988
8900
5983
4988
4984
42441
40949
3995
3995
38995
37685
36999
35983
34990
34785
32999
30594
29999
29999
2862
28000
27995

4 个答案:

答案 0 :(得分:4)

您应该将列转换为数字数据类型。您可以在表定义或查询本身中执行此操作,例如:

... ORDER BY `price`+0 DESC

答案 1 :(得分:2)

这应该有效:

(...)
ORDER BY CAST (price AS INT)

答案 2 :(得分:2)

CAST应该有效:

SELECT CAST(price AS UNSIGNED) AS NumPrice
FROM used_cars
ORDER BY NumPrice DESC

答案 3 :(得分:-1)

这会有效,但效果不好

SELECT price FROM used_cars ORDER BY CAST(price AS int) DESC