我在php-sql中构建了一个迷你游戏,我的得分也很高
高分应该是按分数排序,然后是用户完成测试的时间。
当用户完成测试并提交他的分数和时间时 - 我运行此查询,然后找到
的速率 SELECT `rate`
FROM quiz_1_highscore
WHERE CASE `score` <= ?
WHEN true THEN
CASE `timer` >= ?
WHEN true THEN true
WHEN false THEN
CASE `score` != ?
WHEN true THEN true
END
END
END
ORDER BY `score` DESC, `timer` ASC
LIMIT 1
在第一个和第三个参数中,它是得分,第二个是时间(秒)
我有那些记录 -
rate score time
25 10 65
26 10 74
27 10 74
28 10 78
我记录了10分和70秒 - 所以我应该被评为26分 但查询返回27 - 为什么?
我没有LIMIT检查它的命令 - 27 26 28 ...
我该如何解决?
答案 0 :(得分:2)
试试这个:
我认为您想根据rate
和LIMIT 1
SELECT `rate`
FROM quiz_1_highscore
WHERE CASE `score` <= ?
WHEN true THEN
CASE `timer` >= ?
WHEN true THEN true
WHEN false THEN
CASE `score` != ?
WHEN true THEN true
END
END
END
ORDER BY `rate`,`score` DESC, `timer` ASC
LIMIT 1