我有 T1 表和每周表,如下所示:
CREATE TABLE T1 (
C1 varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
C2 varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
);
和
CREATE TABLE weekly (
C1 varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
C2 varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
year year(4) DEFAULT NULL,
week int(11) NOT NULL DEFAULT '0',
count int(11)
);
基本上,我想每年和每周按 c1、c2 分组所有值的总和。需要将这些值存储到“每周”表中。此查询应每天运行,如果条目已存在则替换。
所以我尝试使用替换成。
replace into weekly select year(timestamp) as year, week(timestamp) as week, C1, C2, count(*) as count from T1 where timestamp >= 20130606 and timestamp <= 20130613 group by C1,C2;
但是此查询正在将新条目添加到每周表中,而不是替换它。怎么了?