2017-07-31 73 views
-1

刪除重複記錄----我的表-------我需要SQL查詢從表中

id  name   company  salary  
---- ------------- -------------- ---------- 
1  abc   xyz   10000 

2  abc    x    10000 

3  ab    y    15000 

1  abc   xyz   10000 

4  bc    yz    1000 

3  ab    y    15000 

5  ab    xy    15000 

-----刪除後,我需要我的表像下面--- -

id  name   company  salary  
---- ------------- -------------- ---------- 
1  abc   xyz   10000 

2  abc    x    10000 

3  ab    y    15000 

4  bc    yz    1000 

5  ab    xy    15000 
+2

請上傳您最初的解決方案,描述你迄今爲止如何解決這個問題。具體說明您遇到的障礙和錯誤以及爲什麼您無法使您的解決方案正常工作。 –

+0

您無法確定要保留哪些行。因此,這個問題是不可解決的。 – Strawberry

回答

0
ALTER IGNORE TABLE `table_name` ADD UNIQUE (name,company,salary)** 

或者你可以試試下面的查詢。

DELETE CO 
FROM table_name CO 
INNER JOIN (
SELECT MIN(ID) ID FROM table_name GROUP BY name,company,salary HAVING count(ID) >1 
)INNERTABLE 
    ON INNERTABLE.ID=CO.ID; 
+0

嗨sagar,我想刪除的數據,不要改變,請幫助我 –

+0

@HarshavardhanreddyAdulla是的,它會刪除重複數據...! 剛剛嘗試過一次 –

+0

它不工作sagar –

0

介紹一個臨時列有一個主鍵

ALTER TABLE t ADD tmp INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; 

呼叫刪除刪除重複

delete t 
from t 
inner join t t2 on t.id=t2.id and t.tmp>t2.tmp 

,然後刪除tmp目錄列