【问题标题】:How to get rid of duplicate rows in MySQL [duplicate]如何摆脱 MySQL 中的重复行 [重复]
【发布时间】:2012-06-27 03:59:22
【问题描述】:

可能重复:
MySQL Duplicate rows
how to delete duplicate rows from a table in mysql

我的数据看起来类似于:

22205 | 2179 |  85 
 8306 | 2179 | 178
11164 | 2179 | 178
23873 | 2179 | 178
 8308 | 2179 | 314
22203 | 2179 | 314
22201 | 2178 |  85

我正在尝试找出一个可以让我删除第三列的重复项的查询。就像我们应该只有一个 178 和一个 314。但请记住,只要第二列不重复,它就可以重复,因此最终结果应该如下所示:

22205 | 2179 |  85 
 8306 | 2179 | 178
22203 | 2179 | 314
22201 | 2178 |  85

谁能帮忙?

【问题讨论】:

  • 区别是我的第三列不是关键,第二列可以有重复。
  • 你选择哪个column1数据没关系?
  • @Dil,我只是猜测,但第一列通常是 PRIMARY 键,不会有重复项。

标签: mysql


【解决方案1】:

也许您需要在两列上创建一个复合键。创建一个新的临时表让我们说 'tbl_temp' 然后使用 INSERT iGNORE ... 复制所有行

【讨论】:

    【解决方案2】:

    只需使用GROUP BY (example):

    SELECT *
    FROM `Table1`
    GROUP BY `b`, `c`
    

    假设:

    CREATE TABLE Table1
        (`a` int, `b` int, `c` int);
    
    INSERT INTO Table1
        (`a`, `b`, `c`)
    VALUES
        (22205, 2179, 85),
        (8306, 2179, 178),
        (11164, 2179, 178),
        (23873, 2179, 178),
        (8308, 2179, 314),
        (22203, 2179, 314),
        (22201, 2178, 85);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 2020-07-30
      • 2014-09-25
      • 2015-04-06
      相关资源
      最近更新 更多