我有一个表,其中存储了我的等级,并且需要升级到这样的另一个等级的积分:

id | level | pointsrequired
-----------------------------
1  | 0     | 0
2  | 1     | 20
3  | 2     | 50
4  | 3     | 90


现在,所需的这些点可以是动态的,因此不确定我是否使用修订案例的值,我想检查我的当前点是否大于上一个点,而小于下一个点,则应该升级我的级别,否则它就可以了。

这是我要查询的查询,但不确定是否适当的解决方案。

SELECT * FROM tbl WHERE pointsrequired BETWEEN 25 AND  (SELECT MAX(pointsrequired) FROM tbl) LIMIT 1


就像以前我的积分是0,而现在我是25,我应该升级到2级
任何其他解决方案对此都不确定。

最佳答案

那么对于25个您想获得2级?

SELECT
      `id`
    , `level`
    , `pointsrequired`
FROM
    tbl
WHERE
    pointsrequired <= 25
ORDER BY
    pointsrequired DESC
LIMIT 1

09-20 19:33