MySQL选择表中最接近的较低值

时间:2013-05-14 21:05:46

标签: mysql sql database

我有一个SQL表,它存储运行时间和每次在表上关联的分数。

/////////////////////
/ Time    *   Score /
/ 1531    *    64   /
/ 1537    *    63   /
/ 1543    *    61   /
/ 1549    *    60   /
/////////////////////

这是表中4行的示例。我的问题是如何选择最接近的最短时间。

示例:如果有人记录的是1548年的时间,我想返回1543( 1549)的分数,即61分。

我是否可以使用SQL查询来执行此操作,谢谢。

1 个答案:

答案 0 :(得分:8)

使用SQL的WHERE子句过滤记录,使用ORDER BY子句对它们进行排序,使用LIMIT(在MySQL中)只获取第一个结果:

SELECT   Score
FROM     my_table
WHERE    Time <= 1548
ORDER BY Time DESC
LIMIT    1

sqlfiddle上查看。