0

我想使用 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,所以应该显示正确的输出......

4

3 回答 3

5

好吧,如果您只想按分数排序,那么

SELECT user, score FROM guesses ORDER BY score

SQLFiddle

于 2013-05-05T17:20:21.140 回答
1

在我看来,您假装是订购它们,而不是分组。在这种情况下,您的查询可能如下:

SELECT user, score FROM guesses ORDER BY score ASC

noteORDER BY score ASC意味着从小到大,就像您在所需的输出中显示它们一样。

于 2013-05-05T17:23:21.607 回答
1

group by 按指定列对元素进行分组。

您想要的是 order by,简单地订购所有记录,无论是否重复。

    SELECT user, score FROM guesses order by score asc
于 2013-05-05T17:23:31.730 回答