0

我在我的 PHP 代码中使用这个 SQL 查询:

SELECT
   *
FROM
   maintenance
WHERE
   from_date <= DATE_ADD(NOW(), INTERVAL 5 DAY)
   AND to_date >= DATE(NOW())
ORDER BY 
   from_date ASC

它在场前 5 天显示行from_date。所以基本上由于日期尚未过去,维护仍在等待中的行。

我希望能够显示相反的结果。那么如果可能的话,维护完成的所有行?

4

1 回答 1

0

您可以排除这些结果:

SELECT
   * 
FROM
   maintenance
WHERE id NOT IN (SELECT
                   id
                 FROM
                   maintenance
                 WHERE
                   from_date <= DATE_ADD(NOW(), INTERVAL 5 DAY)
                   AND to_date >= DATE(NOW())
                 )
ORDER BY 
   from_date ASC

或者简单地说,否定原始查询中的条件。

于 2013-07-04T12:20:25.710 回答