大家好,我目前有这个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/