如何在java中使用查询删除mysql数据库表中的重复记录?
我的数据库表中有很多重复记录。我想做的是使用java中的查询删除重复。我该怎么做如何在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
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的工具进行维护,并重新构造应用程序,以防止首先引入重复数据。为什么不对数据库进行查询???谢谢,它工作得很好。