gpt4 book ai didi

php - 显示获得的奖牌的最佳玩家依赖 Mysql/php

转载 作者:可可西里 更新时间:2023-11-01 08:17:53 24 4
gpt4 key购买 nike

我有一个像这样的奖牌表:

有 3 行:奖牌 ID、奖牌类型(0 = Gold、1 = Silver、2 = Bronze)和 playerId

所以我有一个例子:

id  | type |  Playerid
--- ---- ---------
1 0 1
2 2 1
3 0 1
4 1 2
5 1 2
6 0 3

*这就是意思:

玩家 1 有两枚金牌和一枚铜牌

选手1有2枚银牌

选手3有1枚铜牌

所以我无法按照谁是最好的顺序向他们展示,直到最后一种方式:

选手1因为他有选手1多了2枚金牌

玩家 3 即使他只有 1 枚奖牌,但它是金牌

选手 2 是最后一名,即使他有 2 枚奖牌,但它是银牌

所以我希望你明白我不想按他们拥有的奖牌的总和来排序,而是他们拥有的奖牌类别

示例:如果玩家 X 有 2 枚金牌和 1 枚银牌和 0 枚铜牌,但玩家 Y 有 1 枚金牌和 10 枚银牌和 5 枚铜牌,即使玩家 X 应该是第一名,因为他拥有最多的金牌! .

我希望我对问题的解释是正确的。

等待您关于如何通过 mysql 查询和 php 实现它的建议。

问候。

最佳答案

在 MySQL 中,按类别计数排序非常简单;

SELECT playerid 
FROM medals
GROUP BY playerid
ORDER BY SUM(type=0) DESC, SUM(type=1) DESC, SUM(type=2) DESC

An SQLfiddle to test with .

或者,一次获取所有信息;

SELECT playerid, SUM(type=0) Gold, SUM(type=1) Silver, SUM(type=2) Bronze
FROM medals
GROUP BY playerid
ORDER BY Gold DESC, Silver DESC, Bronze DESC

Another SQLfiddle .

关于php - 显示获得的奖牌的最佳玩家依赖 Mysql/php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228614/

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