这是我的第一个问题,我希望你们能帮助我。 我试图根据具有以下列的表格制作视图:DAY_0
,DAY_1
,DAY_2
, DAY_3
,DAY_4
,DAY_5
,DAY_6
。
问题是我只想根据实际日期来比较列,并查看它是否返回值0
或1
。
我想在这样的事情,但没有奏效:有没有办法在基于变量的比较中选择不同的列?
WHERE 'DAY_'+weekday(curdate()) = 1
任何人知道如何帮助呢?
这是我的第一个问题,我希望你们能帮助我。 我试图根据具有以下列的表格制作视图:DAY_0
,DAY_1
,DAY_2
, DAY_3
,DAY_4
,DAY_5
,DAY_6
。
问题是我只想根据实际日期来比较列,并查看它是否返回值0
或1
。
我想在这样的事情,但没有奏效:有没有办法在基于变量的比较中选择不同的列?
WHERE 'DAY_'+weekday(curdate()) = 1
任何人知道如何帮助呢?
使用功能
ELT(weekday(curdate())+1,DAY_0,DAY_1,..)
不能使用这样的变量列名,但你可以做这样的事情:
WHERE
CASE WEEKDAY(CURDATE())
WHEN 0 THEN DAY_0
WHEN 1 THEN DAY_1
...
END CASE = 1
你也可能想看看数据库规范化。
,但你可以这样做:
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;
这是一个了不起的解决方案!非常感谢! –
不客气! – splash58