为了账号安全,请及时绑定邮箱和手机立即绑定

Mysql Range 动态带值

Mysql Range 动态带值

PHP
慕斯王 2022-06-17 10:07:54
我有一张表,其中存储了我的级别以及升级到另一个级别所需的积分,如下所示: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



查看完整回答
反对 回复 2022-06-17
?
守着一只汪

TA贡献1872条经验 获得超3个赞

那么25岁你想获得2级吗?


SELECT

      `id`

    , `level`

    , `pointsrequired`

FROM

    tbl

WHERE

    pointsrequired <= 25

ORDER BY

    pointsrequired DESC

LIMIT 1


查看完整回答
反对 回复 2022-06-17
?
慕桂英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 的下一个直接级别。


查看完整回答
反对 回复 2022-06-17
  • 3 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号