2013-07-11 104 views
0

我們有2個表稱爲:「post」和「post_extra」。刪除數據庫表中的重複標題mysql

「帖子」表的結構摘要如下: id,postdate,title,description。

而對於post_extra它們分別是: EID,news_id,評價,意見第一個表提交

「ID」 連接到 「news_id」 到第二個表。

表中有超過100,000條記錄,其中許多記錄被複制。我想只保留一個記錄和刪除「後」表具有相同的標題重複的記錄,然後刪除的「post_extra」

我跑這個查詢上的phpmyadmin但是服務器崩潰了,我的連接記錄必須重新啓動它。

DELETE e FROM Post p1, Post p2, Post_extra e WHERE p1.postdate > p2.postdate AND p1.title = p2.title AND e.news_id = p1.id 

我該怎麼做?

+0

我havnt不要做任何事,我想我一定要使用SELECT DISTINCT但如何? – Reactor

+0

是否想刪除最高的postdate。像2013年是你的例子中最高的.... –

回答

0
DELETE p1 
FROM Post p1, Post p2 
WHERE p1.postdate > p2.postdate AND p1.title = p2.title 
+0

這項工作? –

+0

爲什麼不備份你的表並找出答案? –

+0

它會工作,如果沒有相同的標題和同一年的不止一次tupple。 – dijkstra

1

我想在最高posteddate的情況下,該id是最大的,如果這樣你就可以試試這個代碼

DELETE from post where id in (select max(id) from post group by title)