2015-11-11 171 views
-3

我想通过删除任何额外的条目,使任何MySQL表条目对于两列(唯一的)是不唯一的。假设我们在下面有table_A。我只想保留col1和col2与其他条目相同的条目。 table_A的示例结果在下面的table_B中描述。在MySQL表中保留一个副本,并删除其余的

table_A 

id | col1 | col2 | col3 
----------------------- 
1 | a | 3 | 4 
2 | b | 4 | 9 
3 | c | 3 | 4 
4 | a | 3 | 7 
5 | d | 5 | 8 
6 | b | 4 | 2 
7 | a | 3 | 1 
8 | a | 4 | 3 

table_B 

id | col1 | col2 | col3 
----------------------- 
1 | a | 3 | 4 
2 | b | 4 | 9 
3 | c | 3 | 4 
5 | d | 5 | 8 
8 | a | 4 | 3 

注意,行

4 | a | 3 | 7 
7 | a | 3 | 1 
6 | b | 4 | 2 

已被删除,因为类似的COL1,COL2的条目对存在。

+7

http://stackoverflow.com/问题/ 2630440 /如何到删除,复制,上一个MySQL的表?RQ = 1 – lad2025

回答

0

也许只是用在删除连接,检查在加入ID较大: -

DELETE tab2 
FROM table_a tab1 
INNER JOIN table_a tab2 
WHERE tab1.col1 = tab2.col1 
AND tab1.col2 = tab2.col2 
AND tab1.id < tab2.id 

SQL小提琴: -

http://www.sqlfiddle.com/#!9/3b300/1

相关问题