认为这是一个问题,并希望知道一个解决方案,因为在结果数据集上会有一个连接。我无法找到任何具体的内容,但我确信可以做到 -
我目前正在使用字段(day1,day2,day3等),以及(month1,month2等)作为日程/日期计划的标志,此外还有两个时间字段的时区转换(存储为时间)。
问题是当一个区域是第1天时,可能是第2天,或第7天,在另一个区域。我需要查询在结果上是动态的标记---示例结构
SELECT day1, day2, day3,... FROM mytable
我想做的是:
SELECT `day`[DAY(NOW())] as thisday FROM mytable
结果是,无论当天是什么,它都会为该记录选择适当的字段,并使用一列来显示结果。这将允许使用:
... HAVING thisday = 1
虽然我能够使用CONCAT(blah,blah2,blah3)将字符串数据连接在一起,但我需要类似的功能来创建要选择的字段名称(不是新字段,数据库中的现有字段)
如果不存在本机命令,我愿意创建一个可以处理此问题的函数。
提前致谢。
答案 0 :(得分:1)
我认为您可以使用CASE语句根据某个值选择正确的列。
SELECT CASE DAY(NOW()) WHEN 1 THEN day1 WHEN 2 THEN day2 ELSE day29 END as thisday FROM mytable