从表中删除重复项,除了一个和其他人

时间:2014-07-04 15:37:44

标签: mysql duplicates

我必须从表中删除重复项,但是我遇到了一些困难,我不想删除表中的其他行,并且还需要1份副本,它有适用于RegistrationNo,EngineNo和ChasisNo的Car信息和重复项。 例如

     RegNo        EngineNo      ChasisNo
     12345        456789          5678   <--- not delete this
     12345        456789          5678   <--- delete this 
     12345        456789          5678   <--- delete this 
     34590        987643          2557   <--- not delete this

2 个答案:

答案 0 :(得分:0)

您是否尝试过以下SQL查询?

SELECT
  RegNo, EngineNo, ChasisNo
FROM aTable
GROUP BY
  RegNo, EngineNo, ChasisNo

你可以在这个SQLFiddle中自己试试:http://sqlfiddle.com/#!2/fa0aab/3。我觉得你的问题更复杂,你需要添加更多细节。

enter image description here

答案 1 :(得分:0)

您可以使用临时表来存储不同的值,然后删除所有内容并插入临时值。

CREATE TEMPORARY TABLE t (RegNo CHAR(20),EngineNoCHAR(20),ChasisNo  CHAR(20))

INSERT INTO t
SELECT DISTINCT RegNo, EngineNo, ChasisNo FROM aTable

DELETE * FROM aTable

INSERT INTO aTable
SELECT * FROM t