所以我有一些數據是:MySQL的刪除插入後選擇
'38078', '4064', '48', '0', '48', '0', '0',「0 ','0','0','0','0','0','0','0','0','0','2014-09-01 00:00:52'
對應列:
(ROWID,feed_rowid,feed_scans,feed_changed,feed_unchanged,feed_failures,url_dups, 頁,排除相關的,空的,不可分析的,不相關,外語, 損壞,複製,emptyparsed,日期)
其中第二列是一個id,對於此id,將有多個日期的數據,其中date是最後一列。
我想要做的是從一個日期範圍內爲一個id的所有數據求和,然後將求和數據作爲一行添加到數據庫中。同時,我需要刪除所有我剛剛選擇進行求和的舊數據,但我不知道如何。
比如我有查詢:
INSERT INTO crawlstats.feeds_stats
(feed_rowid,feed_scans,feed_changed,feed_unchanged,feed_failures,url_dups, 頁,排除相關的,空的,不可分析的,不相關,外語, 損壞,複製,emptyparsed,日期)
(SELECT feed_rowid,總和(feed_scans)作爲feed_scans,總和(feed_changed)作爲feed_changed, 總和(feed_unchanged)作爲feed_unchanged,總和(feed_failures)作爲feed_failure s,sum(url_dups)作爲url_dups, 作爲頁面的總和(頁面),作爲排除的總和(排除),作爲相關的總和(相關),作爲空的總和(空的), 作爲不可解析的總和(不可解析的)作爲不相關的,和(外語)作爲外語, 爲損壞總和(損壞),和(一式兩份)爲重複,如emptyparsed總和(emptyparsed),日期(「2014年9月1日」)作爲日期 FROM crawlstats.feeds_stats其中feed_rowid = 4784和日期>'2014-08-01'和日期<'2014-09-01')
所以我想刪除我剛剛在這一個查詢的最後一部分選擇的所有那些。我怎麼能這樣做?
看來RowID <>(Select max(rowID)where feed_RowID = 4784)將導致刪除查詢不刪除任何東西。我試圖讓刪除到選擇,它也不會返回任何東西。但是,如果我將它更改爲RowID <>(從crawlstats.feeds_stats where feed_RowID = 4784中選擇max(rowID)),那麼select查詢將返回我們想要的內容,但將其更改回刪除它將會導致錯誤:Error Code :1093.您無法在FROM子句中指定目標表'feeds_stats'進行更新。有什麼想法嗎? – Skyhawk