MySQL GROUP BY没有删除重复项

时间:2013-05-05 16:41:33

标签: php mysql

我想使用GROUP BY而不删除重复项。我的表看起来像这样:

+----+-----+-----+
|user|guess|score|
+----+-----+-----+
|abc |12345|5    |
|def |67890|8    |
|ghi |11121|5    |
|jkl |31415|13   |
|mno |16171|4    |
|pqr |81920|13   |
+----+-----+-----+

每当我做SELECT user, score FROM guesses GROUP BY score时,我都明白了:

+----+-----+
|user|score|
+----+-----+
|mno |4    |
|abc |5    |
|def |8    |
|jkl |13   |
+----+-----+

我想要这个(下面),其中重复项按字母顺序排列。

+----+-----+
|user|score|
+----+-----+
|mno |4    |
|abc |5    |
|ghi |5    |
|def |8    |
|jkl |13   |
|pqr |13   |
+----+-----+

我正在使用猜测进行高分系统,但如果删除重复数据则不公平。

你认为它可能与PHP解析它的方式有关吗?我正在使用phpMyAdmin,所以应该显示正确的输出......

3 个答案:

答案 0 :(得分:5)

好吧,如果你只想按分数订购

SELECT user, score FROM guesses ORDER BY score

<强> SQLFiddle

答案 1 :(得分:1)

在我看来,你假装的是订购它们,而不是团体。在这种情况下,您的查询可以是以下内容:

SELECT user, score FROM guesses ORDER BY score ASC

注意ORDER BY score ASC表示从较小的分数到较大的分数,就像您在所需的输出中显示它们一样。

答案 2 :(得分:1)

按指定列按组分组。

您想要的是简单地订购所有记录,重复或不重复。

    SELECT user, score FROM guesses order by score asc