【问题标题】:Remove duplicates condition to column value将重复条件删除到列值
【发布时间】:2014-01-05 22:16:46
【问题描述】:

我有两张桌子 - 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 值。

我该如何解决这个问题?

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

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

    【讨论】:

    • 如果原表中Col1、Col2上已经存在我不想删除的重复项怎么办?
    【解决方案2】:

    另一种选择。在 col1、col2 上创建唯一键并使用 REPLACE INTO 语法。

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

    如果存在重复记录,则删除Table_1中的记录,并从Table_2中插入记录。如果记录不存在,它只是插入它。

    【讨论】:

    • 如果我不想删除的原始表中存在 Col1、Col2 上的重复项怎么办?
    • 您能否更新您的问题以提供一些示例数据和所需的输出?
    猜你喜欢
    • 2019-08-31
    • 2020-03-10
    • 1970-01-01
    • 2014-12-28
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多