一尘不染

MySQL选择昨天的日期

mysql

如何显示和计算日期为昨天的值?我曾经time()在数据库中插入日期。例:

URL: google.com youtube.com google.com youtube.com test.com youtube.com
DateVisited: 1313668492 1313668540 1313668571 13154314

我想显示表中存在多少个具有多个URL的URL,以及昨天有多少个URL被访问过。结果示例:

LINK       | timesExisted | timesVisitedYesterday
Google.com |       2      | 2
youtube.com|       3      | 3

我已经有了获取昨天日期的想法,但是我没有一个想法来计算昨天存在一个URL的次数和计算表中存在URL的次数。


阅读 415

收藏
2020-05-17

共1个答案

一尘不染

获取昨天日期的最简单最佳方法是:

subdate(current_date, 1)

您的查询将是:

SELECT 
    url as LINK,
    count(*) as timesExisted,
    sum(DateVisited between UNIX_TIMESTAMP(subdate(current_date, 1)) and
        UNIX_TIMESTAMP(current_date)) as timesVisitedYesterday
FROM mytable
GROUP BY 1

出于好奇,sum(condition)为您提供满足条件的行
的原因(否则将需要繁琐且冗长的case语句)是因为在mysql中,布尔值是1true还是0false,因此对条件求和有效地计算了多少次这是真的。使用此模式可以整理您的SQL代码。

2020-05-17