집 >데이터 베이스 >MySQL 튜토리얼 >하위 쿼리에서 LIMIT를 사용하여 최근 15개 레코드를 기반으로 MySQL에서 행을 삭제하는 방법은 무엇입니까?
LIMIT 제한이 있는 mySQL 하위 쿼리
MySQL에서 IN 연산자를 사용하는 하위 쿼리 내에서 LIMIT 절을 사용하려고 하면 오류가 발생할 수 있습니다. MySQL이 이 기능을 지원하지 않는다는 메시지입니다. 이 문서에서는 테이블의 최신 15개 레코드와 관련된 특정 조건을 기반으로 테이블에서 행을 삭제할 수 있도록 하는 이 문제에 대한 솔루션을 제공합니다.
원하는 결과를 얻으려면 다음 쿼리를 활용할 수 있습니다. 구조:
DELETE FROM posts WHERE id not in ( SELECT * FROM ( SELECT id FROM posts ORDER BY timestamp desc limit 0, 15 ) as t);
외부 DELETE 문은 행 삭제를 위해 게시물 테이블을 대상으로 합니다. IN 연산자는 하위 쿼리 결과에서 발견된 행인 유지해야 하는 행을 식별하는 데 사용됩니다.
하위 쿼리는 게시물 테이블에서 id 필드를 선택하고 결과를 타임스탬프별로 내림차순으로 정렬합니다. LIMIT 절을 적용하여 상위 15개 레코드를 검색합니다. 별칭 t를 사용하면 하위 쿼리가 효율적인 처리를 위해 임시 테이블을 생성합니다.
이 해결 방법을 사용하면 MySQL 제한 사항을 효과적으로 제거하고 최신 15개 게시물에 속하지 않는 모든 게시물을 삭제하는 의도된 작업을 수행할 수 있습니다. 기록합니다.
위 내용은 하위 쿼리에서 LIMIT를 사용하여 최근 15개 레코드를 기반으로 MySQL에서 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!