2013-12-17 107 views
0

我有兩個表 - Table_1和Table_2。刪除重複條件到列值

它們具有相同的列 - Col1,Col2,Col3,Col4(整數)。

Col4 value for all Table_1 rows is 1. 
Col4 value for all Table_2 rows is 2. 

我將Table_2行插入到Table_1中。

Table_1和Table_2有一些基於Col1和Col2的重複值。我需要保留Table_2值並刪除Table_1重複值。

例如:

Col1,Col2,Col3,Col4 
1) a ,b ,c ,1  (From Table_1) 
2) a ,b ,d ,2  (From Table_2) 

我嘗試以下 -

ALTER TABLE Table_1 ADD UNIQUE (Col1, Col2);

它除去TABLE_2值,而不是TABLE_1值。

我該如何解決這個問題?

回答

1

在col1,col2上放置一個唯一鍵並在插入時使用on duplicate key update col3=VALUES(col3), col4=VALUES(col4)

+0

如果在原始表格中存在Col1,Col2,我不想刪除的複製品,該怎麼辦? – zenCoder

0

另一種選擇。在col1,col2上創建唯一鍵並使用REPLACE INTO語法。

REPLACE INTO Table_1 (col1, col2, col3, col4) 
SELECT col1, col2, col3, col4 FROM Table_2 

如果存在重複記錄,它將刪除Table_1中的記錄並從Table_2中插入記錄。如果記錄不存在,則只需插入它。

+0

如果已經在原始表格中存在Col1,Col2的重複項,我不想刪除該怎麼辦? – zenCoder

+0

您是否可以更新您的問題以提供一些示例數據和期望的輸出? – Jeff