我有一个SQL表,它存储运行时间和每次在表上关联的分数。
/////////////////////
/ Time * Score /
/ 1531 * 64 /
/ 1537 * 63 /
/ 1543 * 61 /
/ 1549 * 60 /
/////////////////////
这是表中4行的示例。我的问题是如何选择最接近的最短时间。
示例:如果有人记录的是1548年的时间,我想返回1543(不 1549)的分数,即61分。
我是否可以使用SQL查询来执行此操作,谢谢。
答案 0 :(得分:8)
使用SQL的WHERE
子句过滤记录,使用ORDER BY
子句对它们进行排序,使用LIMIT
(在MySQL中)只获取第一个结果:
SELECT Score
FROM my_table
WHERE Time <= 1548
ORDER BY Time DESC
LIMIT 1
在sqlfiddle上查看。