2014-01-05 48 views
-1

我与MySQL的排序,所以如果有一个人能帮助我解决这个我会 太高兴了之前我不明白这问题都mysql的不正确的排序值

weird info

enter image description here

+0

由于列的类型是varchar,因此它使用的字母排序与数字排序完全不同。其他人可能会告诉你如何将它排序为数字,或者可以将列分成两部分:一个数字和一个后缀(T,W)部分。在这种情况下,你甚至可以使后缀成为一个枚举。 – Njol

回答

2

尝试这样做:

ORDER BY (best_feralhog + 0.0) 

它将排序数字,但它会忽略后缀字母。

+0

yeahoo ...我的headeck不见了,谢谢大家的帮助解决方案是 ORDER BY sum + 0.0 DESC LIMIT – user3162273

+0

欢迎来到堆栈溢出。请考虑点击复选框以接受帮助您的最佳答案/正确答案。这可以让你的问题帮助其他用户。 –

1

这些都是排序的。

它们是varchar(10)。它们使用字符串比较进行排序。字符串“1000”小于字符串“999”,因为第一个字符串“1”的第一个字符小于第二个字符串“9”的第一个字符。

如果这些是数字,则应将它们存储在数据库中。考虑使用小数类型。

如果您确实需要存储为varchar,则需要在排序前将值转换(转换)为十进制值。