如何摆脱MySQL中的重复行

时间:2012-06-25 20:45:24

标签: mysql

  

可能重复:
  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

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

只需使用GROUP BYexample):

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);

答案 1 :(得分:0)

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

复制所有行