查詢所有重複數據的結果
SELECT ID,DWMC,ADD_TIME
FROM 表名
WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1)
查詢重複數據只保存,除了首條的結果
SELECT ID,DWMC,ADD_TIME
FROM 表名
WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1)
AND ADD_TIME NOT IN (
SELECT MIN(ADD_TIME) FROM 表名 WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1) GROUP BY DWMC
)
要保留最後一條的話,把MIN 改成MAX
刪除重複數據,僅保存首條
delete from 表名 where id in (
SELECT ID,DWMC,ADD_TIME
FROM 表名
WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1)
AND ADD_TIME NOT IN (
SELECT MIN(ADD_TIME) FROM 表名 WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1) GROUP BY DWMC
)
)
打上重複標籤
update 表名 set DWMC=concat(DWMC,'(重複)') where id in (
SELECT ID
FROM 表名
WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1)
AND ADD_TIME NOT IN (
SELECT MIN(ADD_TIME) FROM 表名 WHERE DWMC IN (SELECT DWMC FROM 表名 GROUP BY DWMC HAVING COUNT(DWMC) > 1) GROUP BY DWMC
)
) AND DWMC NOT LIKE '%(重複)%'