有没有办法根据变量选择不同的比较列?

时间:2015-12-30 19:59:35

标签: mysql sql

这是我在这里的第一个问题,我希望你们可以帮助我。 我尝试根据包含以下列的表格制作视图:DAY_0DAY_1DAY_2DAY_3DAY_4DAY_5DAY_6
问题是我只想根据实际日期比较列,看它是否返回值01
我在考虑这样的事情,但没有成功:

WHERE 'DAY_'+weekday(curdate()) = 1

任何人都知道如何帮助它?

3 个答案:

答案 0 :(得分:2)

使用功能

ELT(weekday(curdate())+1,DAY_0,DAY_1,..)

答案 1 :(得分:0)

您不能使用这样的变量列名,但您可以这样做:

WHERE
    CASE WEEKDAY(CURDATE())
        WHEN 0 THEN DAY_0
        WHEN 1 THEN DAY_1
        ...
    END CASE = 1

您可能还想查看数据库规范化。

答案 2 :(得分:0)

但你可以这样做:

SELECT 
  CASE
     WHEN WEEKDAY(CURDATE()) = 0 THEN day_0
     WHEN WEEKDAY(CURDATE()) = 1 THEN day_1
     WHEN WEEKDAY(CURDATE()) = 2 THEN day_2
     WHEN WEEKDAY(CURDATE()) = 3 THEN day_3
     WHEN WEEKDAY(CURDATE()) = 4 THEN day_4
     WHEN WEEKDAY(CURDATE()) = 5 THEN day_5
     WHEN WEEKDAY(CURDATE()) = 6 THEN day_6
  END AS theDay

FROM myTable;