MySQL 테이블에서 중복 행을 삭제하는 방법
데이터베이스 관리에서는 중복 데이터를 제거하는 것이 일반적인 작업입니다. MySQL에서는 DELETE 명령을 사용하여 이를 수행할 수 있습니다.
다음은 샘플 테이블입니다.
<code class="language-sql">CREATE TABLE names ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) );</code>
테이블에 중복 항목이 있다고 가정합니다.
<code class="language-sql">INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); INSERT INTO names (name) VALUES ('msn'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); SELECT * FROM names;</code>
중복 행을 모두 제거하려면(ID가 가장 작은 행 유지) 다음 쿼리를 사용하세요.
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name;</code>
또는 ID가 가장 큰 행을 유지하려면 다음 쿼리를 사용하세요.
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name;</code>
경고: 우발적인 데이터 손실을 방지하려면 삭제 쿼리를 실행하기 전에 테이블을 백업해야 합니다.
큰 테이블의 경우 더 빠른 INSERT 및 DISTINCT 방법을 사용하는 것이 좋습니다.
``sql 임시 테이블 만들기 temp_names SELECT DISTINCT 아이디, 이름 이름에서; TRUNCATE 테이블 이름; INSERT INTO 이름(ID, 이름) SELECT 아이디, 이름 temp_names에서; DROP TABLE 임시_이름; ````위 내용은 MySQL 테이블에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!