dsoy71058 2017-12-17 22:13
浏览 26

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

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    

is it possible to do something like, echo STATUT for each PLAYER

EXAMPLE : if player has note between (0 and 1000) echo 'LEVEL-I'

but if player has note between (1000 and 2000) echo LEVEL-II ......

  • 写回答

1条回答 默认 最新

  • doudou32012 2017-12-17 22:51
    关注

    If you alter your database query you can generate this info on the fly and have it returned as an extra column, eliminating the other table completely:

    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
    

    Or you can use a subquery like this:

    SELECT ID, PLAYER, NOTE, (SELECT STATUT FROM game_table WHERE NOTE < MAX-NOTE ORDER BY MAX-NOTE DESC LIMIT 1) as LEVEL
    FROM table
    
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?