如何将值与列值进行比较,如果大于传递值,则获得第二高的值

时间:2018-11-25 13:37:32

标签: mysql

我有带有价格列和产品列的表'my_table'

如果我传递的值是1800,那么它应该获得第二高的记录,例如

 SELECT *, ABS(price-1800) x FROM my_table WHERE product = 1 ORDER BY x LIMIT 1;

 Expected output:
id   product   price
1     p1         2000

如果我传递的值是2200或5000,它将获得类似的记录

SELECT *, ABS(price-2200) x FROM my_table WHERE product = 1 ORDER BY x LIMIT 1;
 Expected output:
id   product   price
1     p1         2500

但是如果我传递值2200,查询就无法按我的期望进行工作,它正在选择记录2000,但是我想要记录2500

如何编写查询来实现这一目标?

0 个答案:

没有答案