서방님 avatar

[MySQL] 중복되는 행을 하나만 남기도 모두 삭제하는 방법

seobangnim

Published: 23 May 2018 › Updated: 23 May 2018[MySQL] 중복되는 행을 하나만 남기도 모두 삭제하는 방법

[MySQL] 중복되는 행을 하나만 남기도 모두 삭제하는 방법

가령 다음과 같은 테이블이 있는 경우:

idname
1google
2yahoo
3msn
4google
5google
6yahoo

중복되는 필드 중에서 가장 낮은 ID만 남기고 모두 삭제하고 싶은 경우가 있을 수 있습니다. (혹은 그 반대로 가장 큰 ID만 남겨야 하는 경우도 있을 것입니다.)

이런 상황에서 다음과 같은 쿼리를 사용할 수 있습니다.

DELETE n1 FROM tableName n1, tableName n2 WHERE n1.id > n2.id AND n1.name = n2.name

큰 ID를 남기려는 경우에는:

DELETE n1 FROM tableName n1, tableName n2 WHERE n1.id < n2.id AND n1.name = n2.name

참고로 여러 개의 row를 삭제하려는 경우에는 다음과 같이 IN statement를 사용하면 됩니다.

DELETE from tablename WHERE id IN (1,2,3,...,254);

Between을 사용하여 범위를 지정하는 것도 가능합니다.

DELETE from tablename WHERE id BETWEEN 1 AND 254;

Leave [MySQL] 중복되는 행을 하나만 남기도 모두 삭제하는 방법 to:

Written by

Read more #mysql posts


Best Posts From 서방님

We have not curated any of seobangnim's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 서방님