调整mysql查询以从今天过滤掉日期

时间:2014-05-16 13:25:06

标签: php mysql pdo

大家好,我现在有这个sql:

SELECT a.*
FROM (SELECT a.*
      FROM articles a
      WHERE date >= UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 7 DAY)) AND a.active = 1
      ORDER BY views ASC
     ) a
ORDER BY views ASC

它列出了上周发布的所有文章,我想要做的是调整它以便今天忽略它,这很容易吗?

2 个答案:

答案 0 :(得分:1)

当然可以。您只需添加AND date < UNIX_TIMESTAMP(CURDATE())

即可

为简单起见,您可以使用BETWEEN运算符:

WHERE `date` BETWEEN UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 7 DAY))
                       AND UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 1 DAY))

我相信这可以让引擎更好地使用索引而不是单个>=<=来电,但我不确定。

答案 1 :(得分:0)

不应该&#39;吨

SELECT `a`.*
FROM `articles` AS a
WHERE `date` >= UNIX_TIMESTAMP(NOW(TODAY() - INTERVAL 7 DAY)) AND `date` <= UNIXTIMESTAMP(DATE(NOW() - INTERVAL 1 DAY)) `a`.`active` = 1
ORDER BY `views` ASC

完成这项任务了吗?