那里高
在 Android 上玩一个最小的游戏时,我在 sql 查询方面迷失了方向。
我正在尝试获得前 100 名的排名列表,它几乎有效但不太有效
我正在使用这个查询
$sql = "SELECT * FROM WorldGames_table GROUP BY user_id ORDER BY score DESC LIMIT 100";
问题是它返回前 100 个分数的列表,顺序正确并且每个用户只包含 1 个分数。但显示的并不总是用户的最佳分数。
我对复杂查询的“组织”方式感到完全困惑,这就是我寻找简单查询的原因
干杯
更新:已解决(或者我当时认为 :s)
这是返回我正在寻找的内容的行:D
SELECT WorldGames_table .*, MAX(score) as score FROM WorldGames_table GROUP BY id, device_id ORDER BY score DESC LIMIT 100;
感谢 AT-2016 和每一位伸出援手的人 :D
UPDATE II:毕竟没有解决:S
很高兴正确的高分出现在排名中,我没有意识到,实际上,通过这个查询每个用户的所有分数都显示,而不是只返回每个用户的最佳分数。 我又来了,在搜索最简单的“返回高分” SQL 查询使用 userID
更新 III:我认为答案可能来自 this place 所以我把它放在一起,再次,它在我的本地测试中工作,但在我的服务器上应用它时失败
SELECT a.id, a.timestamp, a.name, a.score, a.color, a.flower, a.user_id
FROM games_table a
INNER JOIN (
SELECT id, MAX(score) score
FROM games_table
GROUP BY user_id
) b ON a.id = b.id AND a.score = b.score
ORDER BY a.score DESC
LIMIT 100
仍在调查,piñata 方式 ;)
更新 IV:我想我有它(但我不会在我确定之前完成) 与此同时,这就是我发现的。不,又一次失败的尝试 :(
我直接在 PHPmyAdmin 中尝试了我的查询
发现那个查询
SELECT
timestamp, name, MAX(score), color, flower, device_id
FROM
WorldFlowers_table
GROUP BY
device_id
ORDER BY
score
DESC
LIMIT 100;
返回了如下错误信息: “当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。”
所以我在第 2 行的开头添加了“id”
现在看来我得到了我想要的结果 我做了一些测试,但我会确保将问题标记为“已回答”
没有用,现在我正在看 this thread 没有太大希望
我今天唯一的收获是我直接在 phpmyadmin 中测试查询
如果外面有人救命!
更新 V:一个叫 scaisEdge 的人给了我这个答案,至少到现在为止,它似乎有效。等待更多测试说“已回答”
select * from WorldFlowers_table
where (device_id, score) in ( select device_id, max(score)
FROM WorldFlowers_table
GROUP BY device_id
ORDER BY score DESC
)
ORDER BY score DESC
LIMIT 100
更新六
有效!! :)
就像我上面说的,答案是 scaisEdge 在我发布在这里的这个问题的另一个“实例”中给我的 mySQL "get TOP 100 scores" query is turning me crazy
最佳答案
尝试使用 MAX() 获得最高值:
SELECT MAX(Values) FROM WorldGames_table
GROUP BY user_id ORDER BY score DESC LIMIT 100
尝试以下操作:
SELECT *
FROM Table JOIN
(SELECT MIN(Score) as Values -- Or use MAX()
FROM (SELECT Score
FROM Table
ORDER BY Score
LIMIT 100
) Table2
) Table2
ON Table.Score >= Table2;
关于mysql - 最简单的 "return highscores"使用 userID 的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39789596/