=做这件事最好的方法是什么?我要收回按分数排序的100项纪录,以获得高分。我还需要收回用户的排名,并指向下一个位置。
我现在是这样做的,但我不确定这是最好的方法
mysql_query("SELECT * FROM highScores ORDER BY score DESC");
我正在循环这些结果,以显示最高的分数。然后,为了获得用户的排名和下一个点,我将执行以下操作
$rank = mysql_num_rows(mysql_query("SELECT id, score FROM highScores WHERE score>='$userS
我需要帮助来完成我应该完成的任务。我有一个表格,其中包括以下字段:
UsernameScoreCompetition
每个用户名可以出现在表中几次,因此他可以有几个分数。无论如何,用户名只能与一个国家相关联。
下面是我的表的一个例子:
Username !! Country || Score
Bob ! Italy ! 100
Bob ! Italy ! 150
Christian ! Italy ! 500
Christian ! Italy ! 200
Fred | Germany | 80
Carl | Ger
我用MySQL创建了一个高分表的游戏。
我有一个“我的分数”按钮,需要检索用户的分数,例如:
10. John 395
42. John 340
90. John 10
我应该如何去检索用户每个分数的排名(第10,42,90)?我可以从数据库中提取所有分数并遍历它们,但这似乎不是一个好的解决方案。
让我试着扩展一下:我从数据库中检索我的所有分数。例如,10分。我想要显示这10个分数,但是我不知道这些分数与我数据库中的其他分数相比是什么排名!(10,16等) ..Hope更有意义…
谢谢
我使用的是MySQL,我有一个保存玩家分数的表,一个玩家可以记录多个分数。我正在尝试找到使用MySQL ORDER BY关键字对球员进行排名的最佳方法。
现在我要做的是:
SELECT DISTINCT t.userName FROM (SELECT userName, score FROM scoreTable ORDER BY score DESC) t;
为了使用它来进行排名,我假设子查询的顺序是由主查询维护的。
这个假设是正确的吗?到目前为止,我的所有测试都正确地维护了顺序。是否存在无法工作的情况?
我们有一个动态集合(每隔几分钟就会发生排名变化)。我们希望显示用户的百分位数分数。
在MySQL中查找用户的等级/百分位数的时间复杂度是多少?(假设整个索引都在RAM中,忽略所有磁盘查找)
MySQL是否在索引中存储额外的信息以更快地计算?
我使用的查询:
SELECT COUNT(*) FROM score_table WHERE score>X"
SELECT COUNT(*) FROM score_table;
我如何才能在MySQL中获得我现在的职位/排名,作为我的时间输出?
喜欢
SELECT rank (get rank from my time: `time`) FROM entries WHERE member = 'my userid' and quiz_id = '2'
我的表名是“条目”,分数是“时间”(最低的是最好的分数,因为它是时间。)而不是最高分)
我的列是id、time、quiz_id
我试着搜索排名上的堆栈溢出,但没有找到解决方案,希望有什么可以帮助我,谢谢!
好吧,很晚了,所以我想我只是累了,但是我已经尝试了大约一个小时,但是我找不到一个适合我的解决方案。基本上,代码查询数据库以找出游戏中有多少人,然后进行一些数学运算来比较人与人之间的分数。然后,它用玩家和他们的点数唯一的id填充一个数组。现在的问题是,我正在尝试将包含人员及其分数列表的数组与包含玩家将根据他们的排名而获得的分数的数组进行比较。我似乎找不到如何将这两个数组放在一起并相应地分配点。代码如下:
$game_id = 4; //will be replaced later on, just for testing
$x = 0;
$y = 0;
$point_array = array(
我有一个在MySQL中对结果进行排名的查询:
SET @rank := 0;
SELECT Name, Score, @rank := @rank + 1
FROM Results
ORDER BY Score
这很好用,直到我尝试以平均分数为基础进行排名:
SET @rank := 0;
SELECT Name, AVG(Score) as AvScore, @rank := @rank + 1
FROM Results
ORDER BY AvScore
如果我运行这个,我只得到一条记录,因为AVG。但是,如果我按名称添加一个组,这样我就可以获得每个人的平均值,这会扰乱正确的排名。
我正在尝试创建一个mysql查询,该查询在我的记分板中查找给定playerid,然后找到它们的最高分数,然后在该分数上添加一个排名。我已经非常接近我想要通过这段代码实现的目标:
SELECT PlayerUUID, `iGamescore` as score, FIND_IN_SET( iGamescore, (
SELECT GROUP_CONCAT( iGamescore
ORDER BY iGamescore ASC )
FROM crystm_gameScoreboard )
) AS rank
FROM crystm_gameScoreboard
WHERE PlayerU
我尽了最大的努力去寻找,但是失败了。我正在开发一个应用程序,我必须使一个系统,以排名用户根据他们的分数,就像这样。在搜索SO之后,我找到了这个查询来创建排名系统
SELECT uid,score,
@curRank := @curRank + 1 AS rank
FROM rankTable p, (SELECT @curRank := 0) r
ORDER BY score desc
但是,我如何才能像在中那样执行此查询来返回特定用户的排名呢
我就是想不出怎么做。
简而言之,我只想建立一个排名系统,就像拥有500万用户一样。任何建议的逻辑都是值得赞赏的。
你好啊外面的开发者,
我想在我的程序中创建一个排名列表,为此,我想让mysql数据库的用户按他们的分数排序。我这么做是为了:
select `name`,`points` from users order by `points` desc
为了获得更好的性能,我不想得到所有的用户,只有10+和10-从一个给定的用户,因为我不想显示整个排名名单在程序无论如何。有人能帮我吗?