我正在使用MySql 5.5。让我们从查看我的表格样本开始:
pickupid pickuplocation Date1 Date2 Date3 Date4
1 Collingwood 1328079600 1330585200 1333260000 1335852000
2 Varsity 1328079600 1330585200 1333260000 1335852000
3 Canmore 1328079600 1330585200 1333260000 1335852000
4 Westbrook 1328079600 1330585200 1333260000 1335852000
我需要一个查询,它只会选择 future 中的日期。如果日期是过去的,则查询必须跳过它。我尝试过使用Select with Have,Or,Where&和。我的查询失败,因为如果其中一个日期碰巧在过去,那么整个查询将返回零结果。是的,我知道如果我围绕另一个方向定位我的桌子,即列中的位置和行中的日期,它可以使它更容易 - 我已经尝试过,但我遇到其他问题,因为我的HTML报告必须容纳超过50个地点,但只有4个日期。
很多人非常感谢你的帮助!!答案 0 :(得分:2)
由于没有太多关于你想要获得的细节,我只是猜测,但是,下面的查询将返回所有结果,其中一个日期是将来的,只有日期列将来的日期将包含数据,其他日期将设置为NULL。
然后,您可以在处理中排除空日期......
这是你想要的吗?
SELECT
pickupid,
pickuplocation,
IF(Date1 > NOW(),Date1,NULL) AS Date1,
IF(Date2 > NOW(),Date2,NULL) AS Date2,
IF(Date3 > NOW(),Date3,NULL) AS Date3,
IF(Date4 > NOW(),Date4,NULL) AS Date4
FROM
locations_table
WHERE
Date1 > NOW()
OR Date2 > NOW()
OR Date3 > NOW()
OR Date4 > NOW()