gpt4 book ai didi

php - 按几列对 mysql 结果进行排序

转载 作者:行者123 更新时间:2023-11-29 13:36:53 25 4
gpt4 key购买 nike

我正在构建一个锦标赛系统,需要根据两个标准对团队进行排序:

  1. 积分(连续赢 3 场比赛可获得 2 分)
  2. 比赛差异(胜场 - 输场)

现在我有一个表列用于记录分数,一列用于记录个人获胜的比赛,一列用于记录个人输掉的比赛。

我从数据库中获取按点排序的结果(ORDER BY 点 DESC)。问题出在个人排名上。如果 A 队和 B 队积分相同,但 B 队的胜场数和输场数之间的正差值更高,则 B 队的排名高于 A 队。

由于所有比赛不会同时进行,而且有些球队可能会落后于赛程,因此完全可能的情况是一支球队比另一支球队获胜更多,但差距更大。

现在我能想到的唯一解决方案如下:

  1. 从数据库获取数据(按点排序)
  2. 计算每个点值出现的次数(例如:9pts.x2、7pts.x5...)
  3. 根据步骤2制作所需的数组数量。
  4. 再次根据分值将数据排序到这些数组中。
  5. 如果数组的长度大于 1,则根据赢局和输局之间的差异对其进行排序。
  6. 打印最终结果。

这对我来说似乎效率很低。还有更好的想法吗?

最佳答案

这会起作用:

select name, wins, losses, points, (wins - losses) as "diff"
from teams
order by points desc, diff desc

演示:http://sqlfiddle.com/#!2/4ea97/1

关于php - 按几列对 mysql 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18621802/

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