如果在SQL中声明

时间:2014-05-12 08:34:19

标签: mysql sql

我有一个游戏,还有一个 MySQL 数据库表,用于存储用户的结果。每个结果都存储,但在高分页面上,我只显示某个用户的最佳结果,如下所示:

SELECT user_id,MAX(score) as score 
FROM   table 
GROUP BY user_id 
ORDER BY score DESC LIMIT $startLimit,$numPerPage

但是现在我还想让它与玩家达到一定分数的时间有关,如果分数是水平的话。

例如如果该玩家有两个相同的分数,我想抓住一个花费更少时间的那个(当然有一个专栏"时间"在此表中)。

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT user_id,score,MIN(time) as MinTime
FROM
(SELECT user_id,MAX(score) as score,time
FROM table 
GROUP BY user_id, time ) T
GROUP BY user_id,score
ORDER BY score DESC
LIMIT $startLimit,$numPerPage

如果用户得分相同,它将以最短时间返回记录。