删除重复条件到列值

时间:2013-12-17 22:45:00

标签: mysql sql database

我有两个表 - 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值。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

在col1,col2上放一个唯一键,插入时使用on duplicate key update col3=VALUES(col3), col4=VALUES(col4)

答案 1 :(得分: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中的记录。如果记录不存在,则只需插入即可。

相关问题