mysql刪除重複的數據並保持惟一性

今天在爬蟲入庫的時候發現忘記設置了惟一性,致使有不少的數據都重複了sql

因此我今天特地百度查詢,找到了一個很是好的sql語句,能夠完美的解決這個問題url

DELETE news_history 
FROM
	news_history,
	( SELECT min( id ) id, title, url FROM news_history GROUP BY title, url HAVING count(*) > 1 ) t2 
WHERE
	news_history.title = t2.title 
	AND news_history.url = t2.url 
	AND news_history.id > t2.id;

 

這個sql語句的意思就是刪除重複的數據並保留id最小的哪個,並建立一個臨時表來查詢去重。blog

而後設置惟一性的話,由於個人url是唯一的,因此給他設置惟一性的索引就能夠了,下面圖片的第二個是惟一性的索引索引

而後使用 insert ignore 就完美的解決了圖片

刪除重複的數據自增id就不是連續的了,看起來很是不友好,我在上一篇博客有解決方法,有興趣的能夠看一下博客

相關文章
相關標籤/搜索