需要帮助来制定SQL查询

时间:2012-03-11 06:11:37

标签: mysql sql

我正在使用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个日期。

很多人非常感谢你的帮助!!

1 个答案:

答案 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()