PHP SQL用户组

PHP SQL用户组,php,mysql,grouping,Php,Mysql,Grouping,我有一个游戏,我会把每一分都留给每一个玩家。 现在我想建立一个高分,列出得分最高的球员。但我只想看到每个球员的最高分数 例: 而不是: David 38 points David 35 points Elin 25 points Elin 23 points Elin 20 points etc etc 我今天的代码: $sql="select userID, poang from floppy ORDER BY poang DESC LIMIT 10"; $result=mysq

我有一个游戏,我会把每一分都留给每一个玩家。 现在我想建立一个高分,列出得分最高的球员。但我只想看到每个球员的最高分数

例:

而不是:

David 38 points
David 35 points
Elin 25 points
Elin 23 points
Elin 20 points
etc etc
我今天的代码:

$sql="select userID, poang from floppy ORDER BY poang DESC  LIMIT 10"; 
    $result=mysql_query($sql) or die(mysql_error()."<br />".$sql); 
    while($row = mysql_fetch_array($result)){
echo $row[userID]." ".$row['poang']." points<br />";
}
$sql=“按poang DESC LIMIT 10从软盘订单中选择用户ID、poang”;
$result=mysql\u query($sql)或die(mysql\u error()。“
”。$sql); while($row=mysql\u fetch\u数组($result)){ echo$row[userID]。“.$row['poang']”点
”; }

有人知道怎么做吗?

使用Group By只取一个&max()作为最大值

使用Group By只取一个&max()作为最大值

什么是“David,Elin”?
SUM
max
(取决于您想要什么)+
Group By By
您在问题中得到了
Group By
,但不是在您的查询中,您是否尝试过类似于
选择用户ID,poang FROM floppy ORDER BY poang DESC GROUP BY userID LIMIT 10
?@Jurik您的查询将不起作用,因为poang不在GROUP BY clauseIt中。当您分组时,以及当您第一次按最高点下单时,它总是第一次出现(行),你应该得到想要的结果。但是你的答案看起来更好:)David,Elin的列名是什么?
SUM
MAX
(取决于你想要什么)+
groupby
你在问题中得到了
groupby
,但在你的查询中没有,你是否尝试过类似
selectuserid,poang FROM floppy ORDER BY poang DESC GROUP BY userID LIMIT 10
?@Jurik您的查询将不起作用,因为poang不在GROUP BY子句中。当您按分组时,它将始终第一次出现(行),当您按最高点第一次订购时,您应该会得到想要的结果。但是你的答案看起来更好:)嗨,我明白了:你的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行“按用户ID分组”附近使用的正确语法选择用户ID,poang from FLOOP ORDER By MAX(poang)DESC LIMIT 10 Group By userIDHi,我发现:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行“按用户ID分组”附近使用的正确语法选择用户ID,poang from floppy ORDER By MAX(poang)DESC LIMIT 10 Group By userIDHi,使用以下代码:$sql=“select TOP 10 userID,MAX(poang)from floppy Group By userID ORDER By MAX(poang)DESC”;我得到了这个错误:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行使用“10 userID,MAX(poang)from floppy GROUP BY userID ORDER BY MAX(poang)DESC”,您没有指定它是MySQL,顶部是TRANSACT-SQL,因为我假设它是SQL server。删除前10名,改为添加限制10。您好,使用以下代码:$sql=“按用户标识顺序按最大(poang)描述从软盘组中选择前10名用户标识,最大(poang)”;我得到了这个错误:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行使用“10 userID,MAX(poang)from floppy GROUP BY userID ORDER BY MAX(poang)DESC”,您没有指定它是MySQL,顶部是TRANSACT-SQL,因为我假设它是SQL server。删除前10项,改为增加限制10项。
SELECT TOP 10 userID, MAX(poang) from floppy GROUP BY userID ORDER BY MAX(poang) DESC
SELECT TOP 10 userID, MAX(poang) from floppy GROUP BY userID ORDER BY MAX(poang) DESC