我的排序/排序方式有问题,无法按我的要求工作。
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字段),因此按词法进行排序。如果是这样,您可能可以通过以下方式订购
varchar
SELECT `proc` FROM `table` ORDER BY convert(`proc`, decimal) DESC;
请注意,这样的查询将非常慢,对于任何严重的使用,最好使用数字列来存储数字数据。