2016-11-28 60 views
0

我正在尝试通过我的测验应用程序api之一的代码进行订购。我希望按用户的分数和时间进行结果排序。我有像比分和时间的专栏。分数包含用户的分数,时间包含用户完成测验的时间。我想按照最高分数+最低时间排在第一位。目前我对于它的代码是像下面多列顺序MySQL

SELECT * FROM contest_score order by score desc, time ASC 

此代码工作,但如果有多个用户具有相同的分数,然后它显示只有一个具有最低的时间用户。我应该纠正什么来获得结果?

例如,如果有3用户有分数和时间如下图所示

user1 : score= 100, time =5.0 
user2 : score = 98 time = 6.0 
user3 : score = 100 time = 4.5 

我想安排用户像第一=用户3,第二= user1和第三user2的

感谢

+3

这是您的实际查询吗?正如你给出的那样,这不会遗漏任何行。 –

+0

是的,我使用相同的,因为我发布了......谢谢 – Priya

+0

如果这是查询,它应该按你想要的那样排序。你在做什么总结等? – raphael75

回答

0

我的意思是你可以这样做:

SELECT * 
FROM contest_score 
order by 
    score desc, 
    CAST(time as DECIMAL(9,2)) ASC 

这有点脏。更好的选择是将其保存为十进制而不是

+0

其工作正常....谢谢 – Priya