"MySQL 중복 제거"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-== 참고 자료 == +==참고==))
 
(사용자 2명의 중간 판 5개는 보이지 않습니다)
6번째 줄: 6번째 줄:
==실습==
==실습==
*id2의 경우 중복된 값이 있는데 하나만 남기고 삭제하고 싶다.
*id2의 경우 중복된 값이 있는데 하나만 남기고 삭제하고 싶다.
<source lang='dos'>
<source lang='console'>
mysql> SELECT * FROM test1;
mysql> SELECT * FROM test1;
+----+-------+-----------+
+----+-------+-----------+
19번째 줄: 19번째 줄:
5 rows in set (0.00 sec)
5 rows in set (0.00 sec)
</source>
</source>
<source lang='dos'>
<source lang='console'>
mysql> ALTER IGNORE TABLE test1 ADD UNIQUE INDEX(id2);
mysql> ALTER IGNORE TABLE test1 ADD UNIQUE INDEX(id2);
Query OK, 5 rows affected (0.05 sec)
Query OK, 5 rows affected (0.05 sec)
Records: 5  Duplicates: 3  Warnings: 0
Records: 5  Duplicates: 3  Warnings: 0
</source>
</source>
<source lang='dos'>
<source lang='console'>
mysql> SELECT * FROM test1;
mysql> SELECT * FROM test1;
+----+-------+-------+
+----+-------+-------+
35번째 줄: 35번째 줄:
</source>
</source>


*(선택적) id2 유일키 제약조건이 필요없으면 제거<ref>필요하다면 계속 사용</ref>
*(선택적) 임시로 적용한 id2 유일키 제약조건이 필요없으면 제거<ref>필요하다면 계속 사용</ref>
<source lang='dos'>
<source lang='console'>
mysql> ALTER TABLE test1 DROP INDEX id2;
mysql> ALTER TABLE test1 DROP INDEX id2;
Query OK, 2 rows affected (0.04 sec)
Query OK, 2 rows affected (0.04 sec)
45번째 줄: 45번째 줄:
*[[중복 관련 SQL]]
*[[중복 관련 SQL]]
*[[유일키]]
*[[유일키]]
*[[ALTER]]
*[[ALTER TABLE]]


==참고 자료==
==주석==
<references/>
 
==참고==
*http://stackoverflow.com/questions/1651999/mysql-remove-duplicates-from-big-database-quick
*http://stackoverflow.com/questions/1651999/mysql-remove-duplicates-from-big-database-quick


[[분류: MySQL]]
[[분류: MySQL]]

2017년 6월 27일 (화) 11:35 기준 최신판

1 개요[ | ]

MySQL 중복 제거
MySQL 유일키 강제 추가
  • 기존에 중복된 컬럼이 있는 경우 하나만 남기고 다 지우고 싶다.

2 실습[ | ]

  • id2의 경우 중복된 값이 있는데 하나만 남기고 삭제하고 싶다.
mysql> SELECT * FROM test1;
+----+-------+-----------+
| id | id2   | str       |
+----+-------+-----------+
|  1 | 11111 | hello     |
|  2 | 11111 | world     |
|  3 | 22222 | hello     |
|  4 | 22222 | world     |
|  5 | 11111 | my friend |
+----+-------+-----------+
5 rows in set (0.00 sec)
mysql> ALTER IGNORE TABLE test1 ADD UNIQUE INDEX(id2);
Query OK, 5 rows affected (0.05 sec)
Records: 5  Duplicates: 3  Warnings: 0
mysql> SELECT * FROM test1;
+----+-------+-------+
| id | id2   | str   |
+----+-------+-------+
|  1 | 11111 | hello |
|  3 | 22222 | hello |
+----+-------+-------+
2 rows in set (0.00 sec)
  • (선택적) 임시로 적용한 id2 유일키 제약조건이 필요없으면 제거[1]
mysql> ALTER TABLE test1 DROP INDEX id2;
Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0

3 같이 보기[ | ]

4 주석[ | ]

  1. 필요하다면 계속 사용

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}