PHP MySQL:从多个类别中获取最高值并编写一个数组



我有一张学生成绩表。学生可以多次参加考试,我们只关心最高分。

所以表格看起来像这样:

UserID      CatID       Score
20          5           60
20          5           85
20          5           80
20          6           90
20          7           80
20          7           75
20          7           90
22          5           75
22          5           85

想要基于UserID变量返回一行,如下所示:

UserID      Cat5        Cat6        Cat7
20              85          90          90

以下是我目前使用的查询:

SELECT score AS Score
, catid
FROM `quiz_result` 
WHERE userid=65 and catid=5
ORDER BY score DESC
LIMIT 0, 1

不确定如何在一行中获取其他类别。。。想法?

谢谢!

试试这篇文章:

SELECT catID, MAX( score ) FROM `quiz_result`
GROUP BY catID;

输出与您的示例中的输出不完全相同,但它基本上满足了您的需求。

编辑

输出将类似于:

catID      MAX(score)
Cat5        85
Cat6        90
Cat7        90

要获取其他列,只需在SELECT查询中包含它们的名称即可。

试试这个:

SELECT CONCAT_WS(',', catID) AS catID, CONCAT_WS(',', MAX(score)) FROM `quiz_result` GROUP BY catID;

相关内容

  • 没有找到相关文章

最新更新