比较两个连续的行

时间:2019-08-24 10:34:35

标签: mysql sql

我有如下数据库表付款

 level_count | amount 
__________________________
     650     | 12
     1000    | 35
     1700    | 50
__________________________

现在想检查我是否提供了作为level_count列值的650输入。然后,我应该得到的金额为12。然后,如果我提供的输入为999,我仍然应该得到12。意味着它应该比较其连续的行并进行比较。假设如果输入1200,那么我应该得到35;如果输入1700或更高,我应该得到50。 我尝试过流动,但没有成功。

我要去哪里了

SELECT * FROM payment  T1 
INNER JOIN payment  T2 on T1.level_count>=T2.level_count AND T1.level_count<T2.level_count 
WHERE T1.level_count = '650'

当我执行上述查询时,没有任何结果。

1 个答案:

答案 0 :(得分:0)

您可以在此处尝试使用LIMIT查询:

SELECT *
FROM payment
WHERE level_count <= 999     -- or 650, or another input value
ORDER BY level_count DESC
LIMIT 1;

以上查询的逻辑分为两个部分。首先,WHERE子句删除level_count比输入值更大的所有记录。但这仍然使我们有可能拥有多个记录(包括我们实际想要的记录)。然后,LIMIT窍门将剩下的单个记录保持为最高 level_count