› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
KasuganoSoras
V2EX  ›  MySQL

请教一个 MySQL 排序问题

  •  
  •   KasuganoSoras ·
    kasuganosoras · Jun 19, 2021 · 3043 views
    This topic created in 1928 days ago, the information mentioned may be changed or developed.

    场景:在做一个小游戏排行榜,参加比赛用时最短,且游戏分数最高的玩家排名靠前

    现在在想怎么排序,目前能想到的办法是用一个固定时间,减去比赛用时,然后将得出的结果加上游戏分数,再以此排序,不过我 SQL 水平有限,不知道应该怎么写,有大佬可以指点一下吗?谢谢

    8 replies  •  2021-06-24 11:04:06 +08:00
    yitingbai
        1
    yitingbai  
       Jun 19, 2021
    你描述的太矛盾了,时间最短和分数最高, 这两个维度到底以哪个为准呢?到底是竞速游戏还是积分游戏?
    wpblank
        2
    wpblank  
       Jun 19, 2021
    这两项总得有一个权重吧?多弄一列保存他们的加权总分。
    如果没权重单纯是时间优先的话,比如用时 1S,100 积分 排在 用时 2S,100 万积分的前面,那么直接 GROUP BY 用时,积分就行?
    wpblank
        3
    wpblank  
       Jun 19, 2021
    @wpblank 打错了 ORDER BY
    KasuganoSoras
        4
    KasuganoSoras  
    OP
       Jun 19, 2021
    @yitingbai 是一个赛车游戏,准确来说是漂移。游戏里车辆漂移的角度越大,得分越高,但是角度大了速度就慢,所以玩家需要在速度和角度之间找到一个平衡,能够做到速度不会太慢的同时分数高的人排名就高

    上面说的这个思路应该是差不多对的,但是不知道怎么用 SQL 去实现。
    yitingbai
        5
    yitingbai  
       Jun 19, 2021
    @KasuganoSoras 楼上说的很对啊, 把时间换算成分数, 再 ORDER BY 分数
    thunderw
        6
    thunderw  
       Jun 19, 2021
    不太慢是多慢?
    你这个问题就不是会不会 SQL 的问题,而是根本就没想好算法的问题。
    你的分数能够量化成数学公式吗?或者你举几个例子,具体的数字,你看能举出来不?
    具体数据量化你能想清楚的话,写 SQL 也就是分分钟的事。
    KasuganoSoras
        7
    KasuganoSoras  
    OP
       Jun 19, 2021
    @thunderw 谢谢,确实是没想好,我重新想一下应该怎么做规则,谢谢大家了。
    yiplee
        8
    yiplee  
       Jun 24, 2021
    赛车游戏应该谁最先通过终点谁就赢。为了鼓励漂移可以学习马里奥赛车,漂移之后有氮气加速效果,抵消漂移带来的降速效果。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2902 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:26 · PVG 21:26 · LAX 06:26 · JFK 09:26
    ♥ Do have faith in what you're doing.