Mysql查询不显示重复记录

时间:2014-04-14 23:11:21

标签: mysql

我有一个高分的排行榜,并且不需要显示重复记录以获得更准确的排行榜。

Table: highscores
+-------------------+----------------+-------------+-------+
| id |    name      |     time       |   moves     | score |
+-------------------+----------------+-------------+-------+
| 1  |  person1     |       33       |     22      |  245  |
+-------------------+----------------+-------------+-------+
| 2  |  person1     |       83       |     31      |  186  |
+-------------------+----------------+-------------+-------+

我的查询是

SELECT * FROM highscores ORDER by Score DESC LIMIT 100

如何更改查询以仅显示重复记录的最高记录而不会弄乱下降部分

这似乎正在发挥作用

SELECT * FROM highscores GROUP BY name ORDER by Score DESC LIMIT 100

1 个答案:

答案 0 :(得分:1)

使用mysql的自定义组:

SELECT * FROM (
   SELECT * FROM highscores
   ORDER by Score DESC) x
GROUP BY name
ORDER by Score DESC
LIMIT 100

这是有效的,因为当并非所有非聚合列都列在group by中时,mysql会返回组中列出的列的每个唯一组合遇到的第一个行。