我有数据库表付款,如下所示
level_count | amount
__________________________
650 | 12
1000 | 35
1700 | 50
__________________________
现在想检查我是否将输入作为 650 提供,这是 level_count 列值。然后我应该得到数量为 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'
当我执行上述查询时,我没有得到任何结果。
您可以尝试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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句