您好,我有一个名为“ target_hours”的表。目标和给定水平
 字段名称(L1,L2,L3,L4,L5)已分配,并在表中以小时为单位提到,如下所示。

|L1 | L2  | L3 | L4 | L5  |
|---| --- | ---|--- |---  |
|192| 168 | 144| 120| 96  |


我只需要按照以下条件,使用mysql query来获取在特定时间内已完成的特定工作的级别(文件名)。例如,让我们花费X个小时。

L5 -->  L5 >= x hours
L4 -->  L4 >= x hours > L5
L3 -->  L3 >= x hours > L4
L2 -->  L2 >= x hours > L3
L1 -->  L1 >= x hours > L2


例如,如果特定任务在135小时内完成,则查询应输出为L3。

最佳答案

虽然我同意这是不良设计的征兆,但解决此问题的一种方法是一堆工会:

select
  lvl
from (
  select l1 as lvl from limits
  union all
  select l2 from limits
  union all
  select l3 from limits
  union all
  select l4 from limits
  union all
  select l5 from limits
  order by
    lvl asc
) x
where
  lvl > 135
limit
  0, 1

关于mysql - 在mysql表中选择列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45753544/

10-09 08:15