带有ORDER BY的MySQL SELECT语句的奇怪结果

时间:2011-09-02 02:25:32

标签: mysql select sql-order-by

我在使用ORDER BY my_column ASC的MySQL SELECT语句上得到了奇怪的结果。

它按照“计算机”命令它们而非人类的方式对结果进行排序:

  • 项目F:241.565853
  • 项目B:25.310854
  • 项目D:25.397155
  • 项目C:260.252356
  • 项目A:27.7740
  • 项目E:271.774058

如何以正确的方式将其发送到ORDER BY?我的SELECT语句有几个LEFT JOINS--不确定是否会产生影响。

有关如何纠正此问题的任何建议?

2 个答案:

答案 0 :(得分:1)

这样的事情应该这样做:

ORDER BY ABS(my_column) ASC

答案 1 :(得分:0)

您订购的列很可能是基于字符串(varchar,text等)的数据类型。您正在看到这种数据类型的词法正确排序。更改列以使用数值数据类型,或者(不太优选,因为为什么要将数值存储为字符串)将列转换为数字类型并对该转换执行排序。 / p>