我在排序/排序方面遇到问题,无法按我需要的方式工作。
SELECT `proc` FROM `table` ORDER BY `proc` DESC;
结果:
80.0 proc
70.0 proc
60.0 proc
50.0 proc
40.0 proc
200.0 proc
20.0 proc
190.0 proc
180.0 proc
170.0 proc
160.0 proc
150.0 proc
140.0 proc
130.0 proc
120.0 proc
110.0 proc
100.0 proc
我需要的是:
200.0 proc
190.0 proc
180.0 proc
170.0 proc
160.0 proc
150.0 proc
140.0 proc
130.0 proc
120.0 proc
110.0 proc
100.0 proc
90.0 proc
80.0 proc
70.0 proc
60.0 proc
50.0 proc
40.0 proc
20.0 proc
怎么做?
最佳答案
看起来“proc”是一个字符串(varchar
字段),所以它是按词法排序的。如果是这样,您可能可以通过以下方式订购它
SELECT `proc` FROM `table` ORDER BY convert(`proc`, decimal) DESC;
请注意,这样的查询会很慢,对于任何严重的使用,最好使用数字列来存储数字数据。
关于mysql - 如何 ORDER BY varchar 字段作为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728683/