您可以使用集合函数将记录添加到表格中并将其添加到SELECT
中。
如果由于某种原因,你需要保留汇总统计,你可以使用:
CREATE TABLE aggregates (type VARCHAR(20), part VARCHAR(10) NOT NULL PRIMARY KEY, activity INT)
INSERT INTO aggregates (type, part, activity)
VALUES ('year', SUBSTRING(SYSDATE(), 1, 4), 1)
ON DUPLICATE KEY UPDATE activity = activity + 1
INSERT INTO aggregates (type, part, activity)
VALUES ('month', SUBSTRING(SYSDATE(), 1, 7), 1)
ON DUPLICATE KEY UPDATE activity = activity + 1
INSERT INTO aggregates (type, part, activity)
VALUES ('day', SUBSTRING(SYSDATE(), 1, 10), 1)
ON DUPLICATE KEY UPDATE activity = activity + 1
这将自动更新现有行并插入不存在的必要时。
如果例如记录的活动每次都发生时,这个表是否会变得非常大页面被加载了一个网站,并且有很多用户在这个网站上持有账户? – Abs 2009-03-04 14:21:39
是的。这是你应该从最初的设计开始。优化可能会晚些时候。 – thomasrutter 2009-03-04 14:29:33