您可以使用集合函數將記錄添加到表格中並將其添加到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