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

标签 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

它列出了上周发布的所有文章,我想做的是调整它,使其忽略今天,容易做到吗?

最佳答案

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

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

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

我相信这可以让引擎比单独的 >= 更好地利用索引和<=电话,但我对此不确定。

关于php - 调整mysql查询以从日期中过滤掉今天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696233/

相关文章:

mysql - 使用mysql删除特定字符后的部分字符串

php - 警告: PDO::__construct(): [2002] 中没有这样的文件或目录(尝试通过 unix:///tmp/mysql.sock 连接)

PHP:如果数字(带逗号),将其转换为正确的数字格式(带点)

mysql - 以下条件的 SQL 查询是什么?

php - mysql 查询(连接)和添加子查询

php - 将订单 ID 与其所属产品相关联的最佳方式

php - mysql Pdo 不会按名称排序

php - 如何在 JavaScript 中将 PHP 文件名指定为变量值?

php - Laravel - 坚实的原则

php - 在linux服务器上安装dlib并尝试将symfony2与sql服务器连接