我有一張表,其中存儲了我的級別以及升級到另一個級別所需的積分,如下所示: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條經驗 獲得超8個贊
SELECT `level` FROM tbl WHERE pointsrequired > 25 ORDER BY pointsrequired LIMIT 1

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
那么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 關注
- 85 瀏覽
添加回答
舉報
0/150
提交
取消