집 >데이터 베이스 >MySQL 튜토리얼 >SQL 데이터베이스 테이블에서 상위 N개 행을 제외하고 모두 삭제하는 방법은 무엇입니까?
데이터베이스 테이블에서 상위 n개 행을 제외하고 모두 삭제하는 SQL 쿼리
많은 시나리오에서 데이터베이스 테이블에서 모든 데이터를 제거해야 합니다. 상위 n개 행을 제외한 데이터베이스 테이블입니다. 이 작업에는 원하는 수의 행만 유지되도록 주의 깊게 제작된 쿼리가 필요합니다.
권장 접근 방식:
맨 위 행만 제외하고 모두 삭제하는 가장 효율적인 방법 SQL의 테이블에서 n개 행은 원하는 행을 선택한 다음 DELETE 문을 사용하여 나머지 행을 제거하는 쿼리를 실행하는 것입니다. 다음 쿼리 템플릿은 이 접근 방식을 보여줍니다.
DELETE FROM TableName WHERE ID NOT IN ( SELECT DISTINCT TOP n ID FROM TableName ORDER BY ID )
장점:
예:
다음 데이터가 포함된 "Sales"라는 테이블을 고려해 보세요.
ID | Name | Amount |
---|---|---|
1 | John | 100 |
2 | Mary | 200 |
3 | Bob | 300 |
4 | Ann | 400 |
다음 데이터를 삭제하려면 이 테이블의 상위 2개 행에는 다음을 사용합니다. 쿼리:
DELETE FROM Sales WHERE ID NOT IN ( SELECT DISTINCT TOP 2 ID FROM Sales ORDER BY ID )
이 쿼리를 실행한 후 "Sales" 테이블에는 다음 행만 포함됩니다.
ID | Name | Amount |
---|---|---|
1 | John | 100 |
2 | Mary | 200 |
위 내용은 SQL 데이터베이스 테이블에서 상위 N개 행을 제외하고 모두 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!