Search code examples
javamysqlrecordduplication

How to remove duplicate record in mysql database table using query in java?


I have so much duplication of record in my database table. what i want to do is to remove the duplication using query in java. How can i do that?.


Solution

  • Create schema TestDB;
    
    CREATE TABLE EMPLOYEE
    (
        ID INT,
        NAME Varchar(100),
        DEPARTMENT INT,
        EMAIL Varchar(100)
    );
    
    INSERT INTO EMPLOYEE VALUES (1,'Anish',101,'anish@howtodoinjava.com');
    INSERT INTO EMPLOYEE VALUES (2,'Lokesh',102,'lokesh@howtodoinjava.com');
    INSERT INTO EMPLOYEE VALUES (3,'Rakesh',103,'rakesh@howtodoinjava.com');
    INSERT INTO EMPLOYEE VALUES (4,'Yogesh',104,'yogesh@howtodoinjava.com');
    
    --These are the duplicate rows
    
    INSERT INTO EMPLOYEE VALUES (5,'Anish',101,'anish@howtodoinjava.com');
    INSERT INTO EMPLOYEE VALUES (6,'Lokesh',102,'lokesh@howtodoinjava.com');
    

    Solution:

    DELETE e1 FROM EMPLOYEE e1, EMPLOYEE e2 WHERE e1.name = e2.name AND e1.id > e2.id;
    

    Above sql query will delete rows where name field is duplicate and only those unique rows will be retained where name is unique and ID field is lowest. For example rows with ID 5 and 6 will be deleted and rows with 1 and 2 will be retained.