大家好,我现在有这个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
它列出了上周发布的所有文章,我想要做的是调整它以便今天忽略它,这很容易吗?
答案 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
完成这项任务了吗?