我的任务包括从一个不断更新的 MySQL 表中读取数据:
CREATE TABLE mailing (
addr VARCHAR(255) NOT NULL
);
(我知道,没有 date_created 字段或任何东西,有点随意,但这就是我得到的)
该表应该包含数百万个电子邮件地址,并且每天都会添加更多。
我应该将这个表中所有域的最近 30 天的每日增长计算在一个单独的表中,我使用以下方法创建:
CREATE TABLE domain_count (
domain VARCHAR(255) NOT NULL PRIMARY KEY,
total_count INT(11) NOT NULL DEFAULT 0,
count_1 INT(11) NOT NULL DEFAULT 0,
count_2 INT(11) NOT NULL DEFAULT 0,
...
count_30 INT(11) NOT NULL DEFAULT 0
);
如果说,在第 1 天邮件表包含来自单个域的 10 个地址,在第 2 天它包含 15 个地址,那么我想要 domain_count.count_1 = 10 和 domain_count.count_2 = 5
为此,我需要跟踪两件事:一是截至昨天邮寄表中的地址总数(所以对于第 2 天,我应该在某处存储“10”,对于第 3 天,我应该有“ 15" 存储在某处;这样我可以从邮件表的第 11/16 列继续搜索)。另一个是最新的 count_# 值,因为我需要知道在第 2 天插入 count_2 (并在第 31 天循环回到 count_1)。
我可以很容易地将这些值存储在一个单独的文件中,但是做这样的事情感觉真的很乱。是否有一个 MySQL 查询可以让我将这些值与表本身关联起来?