gpt4 book ai didi

mysql - 在查询中添加列

转载 作者:行者123 更新时间:2023-11-28 23:35:20 25 4
gpt4 key购买 nike

这是我的查询:

SET @rank=0;

SELECT @rank := @rank +1 AS rank_id, name, SUM(points) AS points
FROM battle_points
WHERE category = 'test'
AND user_id !=0
GROUP BY user_id
ORDER BY points DESC;

我想根据总分添加一列 rank。对于此查询,点数很好,但 rank_id 虚拟列不匹配。

例如,得分最高的用户的 rank 26,而 rank_id 列的值为 24

如何将 rank_id 列与 points 列匹配?

注意:虽然我完全精通 PHP,但我只需要一个适用于 MySQL 的解决方案。

最佳答案

您的方向是正确的,但是您需要将主查询放在子查询中,以便在排名计算之前进行排序,如下所示:

SET @rank=0;
SELECT @rank := @rank +1 AS rank_id, mainQ.*
FROM (
SELECT name, SUM(points) AS points
FROM battle_points
WHERE category = 'test'
AND user_id !=0
GROUP BY user_id
ORDER BY points DESC
) AS mainQ
;

编辑:将 * 限定为 mainQ.*

关于mysql - 在查询中添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com