2015-11-11 172 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

相關問題