데이터베이스 테이블에 너무 많은 레코드 중복이 있습니다. 내가 뭘 원하는 건 자바에서 쿼리를 사용하여 복제를 제거하는 것입니다. 내가 어떻게 할 수 있니?.자바에서 쿼리를 사용하여 MySQL 데이터베이스 테이블에서 중복 레코드를 제거하는 방법은 무엇입니까?
0
A
답변
0
Create schema TestDB;
CREATE TABLE EMPLOYEE
(
ID INT,
NAME Varchar(100),
DEPARTMENT INT,
EMAIL Varchar(100)
);
INSERT INTO EMPLOYEE VALUES (1,'Anish',101,'[email protected]');
INSERT INTO EMPLOYEE VALUES (2,'Lokesh',102,'[email protected]');
INSERT INTO EMPLOYEE VALUES (3,'Rakesh',103,'[email protected]');
INSERT INTO EMPLOYEE VALUES (4,'Yogesh',104,'[email protected]');
--These are the duplicate rows
INSERT INTO EMPLOYEE VALUES (5,'Anish',101,'[email protected]');
INSERT INTO EMPLOYEE VALUES (6,'Lokesh',102,'[email protected]');
해결책 : 이름 필드가 중복 이름이 고유 ID 필드가 가장 낮은입니다 만의 고유 행이 유지 될 위치를 SQL 쿼리 위
DELETE e1 FROM EMPLOYEE e1, EMPLOYEE e2 WHERE e1.name = e2.name AND e1.id > e2.id;
행을 삭제합니다. 예를 들어 ID가 5와 6 인 행은 삭제되고 1과 2가있는 행은 유지됩니다.
+0
덕분에 잘 작동합니다. –
0
중복을 제거하려면 @ 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();
}
지금까지 무엇을 가지고 계셨습니까? 표시 할 코드가 있습니까? 어떤 테이블? 기록이 복제본임을 어떻게 결정합니까? – dic19
왜 자바인가? 이것은 일반적인 데이터베이스 유지 보수입니다. DBMS 도구를 사용하고 응용 프로그램을 재구성하여 처음부터 중복 데이터가 유입되지 않도록하십시오. – Gimby
왜 데이터베이스에 검색어가 없습니까? – shinjw