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

psy*_*cho 0 mysql sql database

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

/////////////////////
/ Time    *   Score /
/ 1531    *    64   /
/ 1537    *    63   /
/ 1543    *    61   /
/ 1549    *    60   /
/////////////////////
Run Code Online (Sandbox Code Playgroud)

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

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

有没有我可以用来做这个的SQL查询谢谢.

egg*_*yal 8

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

SELECT   Score
FROM     my_table
WHERE    Time <= 1548
ORDER BY Time DESC
LIMIT    1
Run Code Online (Sandbox Code Playgroud)

sqlfiddle上看到它.