MySQL从查询中删除,其中两列是重复的

时间:2011-07-03 22:07:25

标签: mysql sql

我想要做的是删除所有重复的列,其中A列和B列是重复的。例如:

A      B      C   
-----------------
Apple  Pear   11  
Apple  Pear   12  
Apple  Pear   13  
Orange Apple  22  
Orange Beer   21  
Cinder Punch  30  
Cinder Punch  31  
Cinder Punch  32  

会导致:

A      B      C   
-----------------
Apple  Pear   11  
Orange Apple  22  
Orange Beer   21  
Cinder Punch  30  

2 个答案:

答案 0 :(得分:3)

步骤1:将非重复项(唯一元组)移动到临时表

CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY [column to remove duplicates by];

HERE,[删除重复项的列] =由“COMMA”分隔的列名,所以在您的情况下为A,B

第2步:删除删除旧表 我们不再需要包含所有重复条目的表格,所以请删除它!

DROP TABLE old_table;

步骤3:将new_table重命名为old_table的名称

RENAME TABLE new_table TO old_table;

答案 1 :(得分:0)

你可以按照以下方式做到这一点

delete from table_name
where rowid not in (select min(rowid) from table_name group by a,b)