2014-03-28 57 views
0

我想刪除由該查詢影響的所有記錄:刪除記錄,受另一查詢

SELECT COUNT(Distinct news_id) AS TotalRecords, country 
FROM upload_news 
WHERE [upload_time] BETWEEN GetDate()-7 AND GetDate() 
GROUP BY country 

我不知道如何寫這個查詢。

+1

您無法使用一個查詢執行此操作,因爲您得到的結果是一個數字(來自'COUNT')。你必須用另一個查詢來完成它:'在DELETE FROM upload_news WHERE [upload_time]之間GetDate() - 7 AND GetDate()' –

+0

謝謝@Justin lurman –

回答

1

如果你想刪除所有滿足謂詞查詢中的行...

刪除GROUP BY條款並更換SELECT <expression_list>DELETE關鍵字...

但是,這似乎不是MySQL語法。在方括號圍繞IDENTIFER,而「-7」是繼GETDATE()功能使這個看起來像SQL服務器(的Transact-SQL)語法。

這將從upload_news具有指定範圍內的值upload_time除去所有的行。

DELETE FROM upload_news 
WHERE [upload_time] BETWEEN GETDATE()-7 AND GetDate() 

,可隨時更換DELETESELECT *,這將返回所有將從upload_news表中刪除行。請注意,外鍵約束和/或觸發器可能會導致其他表中的行受到影響(刪除,更新和/或插入)