Mysql 有些查询有bug
我用PHPSQL做了一个小游戏,我的分数也很高 高分应按分数排序,然后按用户完成测试的时间排序 当用户完成测试并提交他的分数和时间时,我运行这个查询,并由此找到Mysql 有些查询有bug,mysql,sql,Mysql,Sql,我用PHPSQL做了一个小游戏,我的分数也很高 高分应按分数排序,然后按用户完成测试的时间排序 当用户完成测试并提交他的分数和时间时,我运行这个查询,并由此找到 SELECT `rate` FROM quiz_1_highscore WHERE CASE `score` <= ? WHEN true THEN CASE `timer` >= ? WHEN true THEN true
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
我记录了10分70秒——所以我应该被评为26分但是查询返回27-为什么 我没有限制地检查了一下,订单是27 26 28
我如何解决这个问题?试试这个: 我想您应该按照
价格
和限额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
SELECT`rate`
来自测验1的高分
在哪种情况下,`score`=?
当为真时,则为真
那么什么时候是错的
案例“分数”!=?
当为真时,则为真
结束
结束
结束
按'rate'、'score'DESC、'timer'ASC'排序
限制1
您正在使用哪些RDBMS?
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