我正在用PHP/MySQL构建一个小测验游戏.在提问之后,我想要一个屏幕来显示最后一轮中有多少被正确回答.
我在以下表格中存储它们是否被正确回答:
rowID | questionid | playerid | answercorrect |
1 | 1 | 1 | 1 |
2 | 2 | 1 | 1 |
3 | 3 | 1 | 1 |
4 | 4 | 1 | 1 |
5 | 5 | 1 | 0 |
6 | 6 | 1 | 1 |
7 | 7 | 1 | 1 |
Run Code Online (Sandbox Code Playgroud)
我想看看有多少最后的x(通常是5个)问题得到了正确回答.
我觉得这很简单.我正在尝试这个:
SELECT sum( answercorrect ) FROM `answersgiven` ORDER BY id DESC LIMIT 5
Run Code Online (Sandbox Code Playgroud)
我认为这将总结answercorrect最后5行的列,给我4的答案,但它给了我7,这是所有行的结果.
我觉得我错过了一些明显的东西.这似乎是一件简单的事情.
有任何想法吗?
Sir*_*rko 12
试试这个:
SELECT sum(answercorrect)
FROM (SELECT answercorrect FROM `answersgiven` ORDER BY rowID DESC LIMIT 5) t1
Run Code Online (Sandbox Code Playgroud)
在您的查询中,该LIMIT子句会影响整体结果:首先对所有内容进行求和(导致一行 - 所有行的总和),然后获取前五行(如果可用)(这也只是一行) .
实现目标的最简单方法是首先选择前5行(在子选择中)然后总结.
| 归档时间: |
|
| 查看次数: |
7074 次 |
| 最近记录: |