Mysql Highscore表-如何获得每个用户的最高分数?

Mysql Highscore表-如何获得每个用户的最高分数?,mysql,Mysql,是的,有很多类似的问题,但我真的无法解决我的问题。不幸的是,我没有足够的知识来理解类似问题的答案来解决我的问题 我有id、姓名、分数、ip变量。我不关心id或ip变量 我的疑问是这样的 $query=“按分数从高分顺序中选择*+0描述限制10”; $result=mysql\u query($query) 这给出了higscore表,但存在相同用户的不同分数。我想显示每个用户的最高分数 我甚至不知道为什么我的代码上有+0。为什么如果我删除它,表不会显示为desc $query = "SELECT

是的,有很多类似的问题,但我真的无法解决我的问题。不幸的是,我没有足够的知识来理解类似问题的答案来解决我的问题

我有id、姓名、分数、ip变量。我不关心id或ip变量

我的疑问是这样的

$query=“按分数从高分顺序中选择*+0描述限制10”;
$result=mysql\u query($query)

这给出了higscore表,但存在相同用户的不同分数。我想显示每个用户的最高分数

我甚至不知道为什么我的代码上有+0。为什么如果我删除它,表不会显示为desc

$query = "SELECT * FROM highscores ORDER BY ABS(score) DESC LIMIT 10";
这应该允许您在不使用零的情况下运行查询


至于从列表中删除重复的用户分数,要么只记录每个用户的最佳分数,要么进行进一步的处理以将其从列表中删除。循环浏览结果并只选择每个用户的最高分数将非常简单。

以下查询将为您提供每个玩家的姓名及其最佳分数:

SELECT name, MAX(score) FROM highscores GROUP BY name ORDER BY MAX(score) DESC LIMIT 10

我以前已经试过了,不幸的是它给了我一个未定义的偏移量错误。我想我应该在查询的内部创建一个具有内联或类似smth的查询,以首先定义该变量。@user1101028,什么变量?您确定您的分数列是数字类型吗?你不应该使用
+0
。哦,你是对的。我想这就是原因。但我不知道如何将其设置为数字。我刚刚用了这个$score=$\u POST['score']$query=“插入高分(名称、分数、ip)值(“$name”、“$score”、“$ip”)”;@Mike Daniels我的意思是它指向我的echo$行[2];我猜这一行在这一点上没有值。是的,有了ABS,我可以运行不带零的查询。我仍然不知道为什么其他人不使用abs或zero,但我应该^^。是的,我想我必须再创建一个查询来为相同的用户选择最佳分数。但我还不知道怎么做。