2017-07-31 70 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目录列