SQL:使用tie找到最接近给定值的数字

jbr*_*ans 1 mysql sql database

我正在尝试在SQL中找到与给定值最接近的数字.我已经查询了多个结果:

SELECT *
FROM Cars
ORDER BY ABS(price - $price)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用LIMIT 1限制表格,我有一个最接近给定值的数字.但我怎么能包括关系呢?例如,当有三辆或四辆同样价格的汽车时?具有相同价格的汽车数量是动态的,因此我无法指定某个LIMIT.

我也知道我可以使用SELECT TOP 1 WITH TIES,但我无法使用此查询,因为我的数据库驱动程序不允许它.有没有人对如何做到这一点有另一个想法?

例:

  • 车1 = 2000
  • 车2 = 3000
  • 车3 = 3000
  • 车4 = 1500

当我想要最接近3000的汽车时,查询应返回:

  • 车2
  • 车3

但是在查询中没有使用静态LIMIT,因为每次具有相同价格的汽车数量可能不同.谢谢

Ste*_*neM 5

如果您的驱动程序支持嵌套查询:

SELECT * 
FROM CARS 
WHERE ABS(price - $price) = ( SELECT MIN(ABS(price - $price)) FROM CARS )
Run Code Online (Sandbox Code Playgroud)