PHP从2个数字之间的mysql获取数据

问题描述 投票:2回答:1
GAME LEVEL TABLE                    PLAYER TABLE
------------------------            ------------------------
ID  MAX-NOTE    STATUT              ID  PLAYER      NOTE
------------------------            ------------------------
1   1000        LEVEL-I             1   PLAYER1     500
2   2000        LEVEL-II            2   PLAYER2     1200
3   3000        LEVEL-A             3   PLAYER3     100
4   4000        LEVEL-B             4   PLAYER4     3500    

是否有可能为每个PLAYER做回声STATUT

示例:如果玩家在(0到1000)回声'LEVEL-I'之间有音符

但如果玩家在(1000和2000)之间有音符,则回音LEVEL-II ......

php mysql
1个回答
1
投票

如果您更改了数据库查询,则可以动态生成此信息并将其作为额外列返回,从而完全消除了另一个表:

SELECT ID, PLAYER, NOTE,
    (CASE
        WHEN NOTE < 1000 THEN 'LEVEL-I'
        WHEN NOTE BETWEEN 1000 AND 2000 THEN 'LEVEL-II'
        WHEN NOTE > 2000 THEN 'LEVEL-III'
    END) LEVEL
FROM table

或者您可以使用这样的子查询:

SELECT ID, PLAYER, NOTE, (SELECT STATUT FROM game_table WHERE NOTE < MAX-NOTE ORDER BY MAX-NOTE DESC LIMIT 1) as LEVEL
FROM table
© www.soinside.com 2019 - 2024. All rights reserved.