MySQL ORDER BY不是最常见的

时间:2014-06-21 08:39:31

标签: php mysql sorting

你好我有这个表,其中包含用户和他们拥有的点数,我想从具有最高点的用户开始显示表,但是当我尝试下面的代码时,它显示的是最常见的数量分数。

SELECT * FROM users ORDER BY points ASC

但不是

User | Points
Bob    20
Jon    16
Abu    16
Eli    15

确实

User | Points
Jon    16
Abu    16
Bob    20
Eli    15

看不应该20在顶部?它是最常见的点,我对PHP新手的任何帮助

编辑:感谢Hanky웃Panky我意识到我需要做什么

ORDER BY CAST(points AS unsigned) DESC 

是正确的方法。

3 个答案:

答案 0 :(得分:0)

使用

<强> QUERY

SELECT * FROM users ORDER BY points DESC  

降序

答案 1 :(得分:0)

您的Points字段必须是要以此方式解释的字符串。把它作为一个数字投射(如果你不能永久地改变数据类型成为一个数字)并且你很好。

SELECT * FROM users ORDER BY CAST(points AS unsigned) ASC

对于降序,请使用DESC代替ASC

<强> Fiddle

答案 2 :(得分:0)

请更改类型将字符串更改为整数或数字类型。

ALTER TABLE tablename MODIFY columnname INTEGER;

ALTER TABLE users MODIFY points INTEGER;