2013-12-17 74 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