我有一個使用EVENT SCHEDULER更新數據庫的查詢。它應該每天更新一次數據。我的問題是,如果記錄存在,我無法更新它,除非我創建了UNIQUE INDEX,因爲域每個月都會重複一次,所以我無法做到這一點。在重複項目上重複更新
INSERT INTO f_s.s_d_s_tab(month,count_per_month,updated)
SELECT * FROM
(
SELECT
DATE_FORMAT(`FE`,'%m') AS Month, COUNT(FE) AS FirstCount, domain
FROM rets
GROUP BY DATE_FORMAT(`FE`,'%m'), domain
ORDER BY domain, Month ASC
) a
ON DUPLICATE KEY UPDATE count_per_month = a.FirstCount, updated = NOW();
記錄顯示,像這樣
Domain Month coun_per_month
dom1 01 50
dom1 02 90
dom1 03 34
dom2 01 12
dom2 02 99
dom2 03 80
等....
我能做些什麼來讓它插入新域,但更新舊的。
'UNIQUE(Domain,Month)'? – Wrikken
我會使用'... UPDATE count_per_month = VALUES(count_per_month)...'來引用已經插入的值。 SELECT中的列似乎不與INSERT上的列名「對齊」。 (看起來'domain'正在被放入'updated'列 – spencer7593