我有一张表,其中存储了我的级别以及升级到另一个级别所需的积分,如下所示:id | level | pointsrequired-----------------------------1 | 0 | 02 | 1 | 203 | 2 | 504 | 3 | 90现在需要的这个点可以是动态的,所以不确定我是否使用修复案例值,我想检查我的当前点是否大于前一个并且小于下一个我的级别应该升级,否则它很好。这是我来的查询,但不确定这是不是正确的解决方案。SELECT * FROM tbl WHERE pointsrequired BETWEEN 25 AND (SELECT MAX(pointsrequired) FROM tbl) LIMIT 1就像以前我的积分是 0,现在我得到 25,我应该升级到 2 级任何其他对此不确定的解决方案。
3 回答

qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
SELECT `level` FROM tbl WHERE pointsrequired > 25 ORDER BY pointsrequired LIMIT 1

守着一只汪
TA贡献1872条经验 获得超3个赞
那么25岁你想获得2级吗?
SELECT
`id`
, `level`
, `pointsrequired`
FROM
tbl
WHERE
pointsrequired <= 25
ORDER BY
pointsrequired DESC
LIMIT 1

慕桂英4014372
TA贡献1871条经验 获得超13个赞
我认为这是您想要的逻辑:
SELECT *
FROM tbl t1
WHERE
pointsrequired BETWEEN 25 AND
(SELECT t2.pointsrequired FROM tbl t2 WHERE t2.pointsrequired > 25
ORDER BY t2.pointsrequired LIMIT 1);
子查询查找高于输入值 25 的下一个直接级别。
- 3 回答
- 0 关注
- 64 浏览
添加回答
举报
0/150
提交
取消