Mysql从表中选择最接近的匹配

时间:2012-07-28 09:04:13

标签: mysql select match closest

我有一张看起来像这样的表:

ID|DATA
1 | ok
4 | ok2
5 | kk
6 | same ok
7 | k
9 | yeah

我想找到与我的身份最接近的匹配(向下舍入)。当我通过

  

id = 8

我想选择原始7 | K

我如何在mySql中执行此操作

2 个答案:

答案 0 :(得分:3)

您可以使用此解决方案:

SELECT   id, data
FROM     tbl
WHERE    id <= 8
ORDER BY id DESC
LIMIT 1

或者,这是另一种方法,您可以在不必使用ORDER BY / LIMIT的情况下执行此操作:

SELECT b.id, b.data
FROM   (SELECT MAX(id) AS id FROM tbl WHERE id <= 8) a
JOIN   tbl b ON a.id = b.id

答案 1 :(得分:0)

SELECT * 
 FROM table
 WHERE ID <= 8
 ORDER BY ID DESC
 LIMIT 1