细节
我想找出每个测试的开始和停止时间(持续时间)之间的差异,然后根据每个测试的最高分和最低持续时间对用户进行排名。最终我将使用 PDO 在 mysql 中执行此操作。到目前为止,虽然我一直在研究 sql。我想我现在已经很接近了,但不确定how to combine the information into one query
。
我有什么(未经测试)。
我有下表称为testresults
--------------------------------------------------------------------
| index | id | start | stop | score|
--------------------------------------------------------------------
| 1 | 23 | 2012-06-06 07:30:20 | 2012-06-06 07:30:34 | 100 |
--------------------------------------------------------------------
在我的选择语句中,我想得到id
andscore
以及计算的duration
.
我可以通过以下查询获得今天进行的任何测试的持续时间。
SELECT TIMESTAMPDIFF(SECOND,stop,start) AS duration
FROM testresults WHERE `start` >= DATE(NOW())
然后我根据排名对结果进行排序。排名根据分数和持续时间确定。最高分以最短的持续时间获得最高分。我相信我可以通过以下方式做到这一点:
ORDER BY score DESC, duration ASC
我只想要大约 100 个条目,所以,
LIMIT 100
问题
如何将上述信息组合成 1 个查询?