如何在java中使用查询删除mysql数据库表中的重复记录?

如何在java中使用查询删除mysql数据库表中的重复记录?,java,mysql,record,duplication,Java,Mysql,Record,Duplication,我的数据库表中有很多重复记录。我想做的是使用java中的查询删除重复。我该怎么做 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 IN

我的数据库表中有很多重复记录。我想做的是使用java中的查询删除重复。我该怎么做

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');
解决方案:

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

上面的sql查询将删除名称字段重复的行,只有名称唯一且ID字段最低的行将保留唯一的行。例如,ID为5和6的行将被删除,ID为1和2的行将被保留。

要删除重复项,可以使用@Kanan的查询。要在java中执行此操作,只需使用以下代码

try 
{ 
Statement st = connection.createStatement(); 

String query = "DELETE t1 FROM table t1, table t2 WHERE t1.name = t2.name AND t1.id > t2.id;" 

st.executeUpdate(); 
}
catch(Exception e)
{ 
       e.printStackTrace(); 
}

到目前为止你有什么?有代码显示吗?什么桌子?如何确定记录是重复的?为什么是Java?这是一般的数据库维护-最好使用DBMS的工具进行维护,并重新构造应用程序,以防止首先引入重复数据。为什么不对数据库进行查询???谢谢,它工作得很好。